




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Php+mysql+apache搭建环境(编译安装)安装mysql1、 下载mysql源码文件2、 安装yum -y install gcc gcc-c+,下载cmake包,安装cmake(make;make install)3、 安装mysql(yum install gcc yum install cpp yum install gcc-c+ yum install ncurses configure -prefix=/usr/local/apache -with-mysql=/usr/local/mysql -enable-cgi -enable-ssl -with-ssl=/usr/local/openssl (-enable-so)这个参数适应的进行添加 -enable-rewrite -enable-modules=all -enable-mods-shared=allyum install ncurses-devel yum install gd-devel php-gd yum install zlib-devel yum install freetype-devel freetype-demos freetype-utils yum install libpng-devel libpng10 libpng10-devel yum install libjpeg-devel yum install ImageMagick yum install flex)安装php这次在编译php5的时候,真的体验到linux的复杂了,吃尽了苦头。在这里就总结一下。1:安装zlib,假如你编译的时候,指定路径,那么在安装gd的时候,会出现找不到zlib的错误,其实缺省安装,是把软件安装到/usr/local/lib 和/usr/local/include/ 下的。所以就采用缺省的路径就可以了。2:freetype,这个如果你编译的时候,采用缺省路径,那么你编译php的时候,就必须指定freetype 的路径,否则是找不到的,我猜测时候因为在缺省的路径下freetype的目录是freetype2,这样就找不到。(我突然想到,假如我做一个软链接,是不是就可以解决这个问题呢)。这就要你知道freetype缺省时候安装在那里。/usr/local/include/freetype2 。你看我编译php的参数的时候就用到。3:编译jpeg的时候,这个软件比较笨,自己不会创建目录,所有你只能手工创建,指定他的安装路径,这个其实也是和软件的版本有关,以后估计就没有这个问题了。4:编译libxml2,如果没有这个,编译php的时候,就会出错,不过你编译了这个,还是会出错,你必须cp xml2-config /usr/bin才能解决无法找到xml2-config这个错误。5:关于安装过程是否需要指定路径,指定路径的好处就是你能很清楚这个软件是安装在那里,干什么用途的。这也是为什么用编译的方式,不过lib库这些,比较复杂,要搞明白,你就只能看那些help6:编译的时候,出现不认识的参数,这个时候,你就只能看help./configure help | grep freetype这样你才能得到你有用的信息,这也是根别人学到的。7:安装jpegsrc.v6b.tar.gz,的时候,有资料上写的时候 make install_lib ,才能应该执行make install-lib才能生成libjpeg.a文件,不过现在这个版本好像时候不需要,/usr/local/jpeg/lib/libjpeg.a,能找到这个文件。8:软件下载地址/zlib-1.2.3.tar.gz/graphics/jpeg/jpegsrc.v6b.tar.gz/releases/freetype/freetype-2.3.5.tar.gz/pub/libpng/png/src/libpng-1.2.26.tar.gz/releases/gd-2.0.35.tar.gz安装步骤1:安装ZLIB2#zlib#tar zxvf zlib-1.2.3.tar.gz cd zlib-1.2.3 ./configure make make install clean2:安装PNG#libpng#tar zxvf libpng-1.2.26.tar.gz cd libpng-1.2.26./configure make make install clean3:安装freetype#freetype#cd freetype-2.3.5 ./configure make make install4:安装JPEG6 #jpeg#tar zxvf jpegsrc.v6b.tar.gz cd jpeg-6b mkdir -pv /usr/local/jpeg/,bin,lib,include,man/man1,man1 ./configure -prefix=/usr/local/jpeg -enable-shared - enable-static make make install5:安装GD #GD#tar zxvf gd-2.0.35.tar.gz cd gd-2.0.35 ./configure -with-png -with-freetype -with-jpeg=/usr/local/jpeg/ make make install在configure完后,要注意看看编译的时候,最后结果那里可以看到 * Configuration summary for gd 2.0.35: Support for PNG library: yes Support for JPEG library: yes Support for Freetype 2.x library: yes Support for Fontconfig library: no Support for Xpm library: no Support for pthreads: yes 可以看到png 、 jpeg 、 freetype都已经安装上了6:安装LIBXML2 #libxml2 #tar zxvf libxml2-2.6.31.tar.gz cd libxml2-2.6.31 ./configure -prefix=/usr/local/libxml2 make make install cp xml2-config /usr/bin7、安装PHP5.2.5#php#tar zxvf php-5.2.5.tar.gz cd php-5.2.5./configure -prefix=/usr/local/php5 -with-mysql=/usr/local/mysql/ -with-apxs2=/usr/local/httpd/bin/apxs -with-jpeg-dir=/usr/local/jpeg/ -with-freetype-dir=/usr/local/include/freetype2/ -with-zlib -with-png-dir=/usr/local/libpng12 -with-libxml-dir=/usr/local/libxml2/ -with-gd -enable-ftp -enable-sockets看到这个画面,就表示你成功了,如果出现什么不认识的参数,那么你就要好好看看了,freetype,他自己找不到路径,必须我手工指定。makemake install配置php,apachecp php.ini-dist /usr/local/php5/lib/php.inivi /usr/local/apache2/conf/httpd.conf添加下面两行AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps搜索LoadModule php5_module modules/libphp5.so 我的缺省就是没有注释的,你看看你的。安装ZendOptimizer-3.0.0 tar -zxvf ZendOptimizer-3.0.0-linux-glibc23-x86_64.tar.gz cd ZendOptimizer-3.0.0-linux-glibc23-x86_64 ./install整个过程总算完成了,我最后下载/viewthread.php?tid=897809apache 安装1、 configure -prefix=/usr/local/apache -with-mysql=/usr/local/mysql -enable-cgi -enable-ssl -with-ssl=/usr/local/openssl -enable-so -enable-rewrite -enable-modules=all -enable-mods-shared=all(./configure /配置源代码树-prefix=/usr/local/apache2 /Apache的安装目录。-enable-module=so /打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块-enable-deflate=shared /支持网页压缩-enable-expires=shared /支持 HTTP 控制-enable-rewrite=shared /支持 URL 重写-enable-cache /支持缓存-enable-file-cache /支持文件缓存-enable-mem-cache /支持记忆缓存-enable-disk-cache /支持磁盘缓存-enable-static-support /支持静态连接(默认为动态连接)-enable-static-htpasswd /使用静态连接编译 htpasswd - 管理用于基本认证的用户文件-enable-static-htdigest /使用静态连接编译 htdigest - 管理用于摘要认证的用户文件-enable-static-rotatelogs /使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序-enable-static-logresolve /使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名-enable-static-htdbm /使用静态连接编译 htdbm - 操作 DBM 密码数据库-enable-static-ab /使用静态连接编译 ab - Apache HTTP 服务器性能测试工具-enable-static-checkgid /使用静态连接编译 checkgid-disable-cgid /禁止用一个外部 CGI 守护进程执行CGI脚本-disable-cgi /禁止编译 CGI 版本的 PHP-disable-userdir /禁止用户从自己的主目录中提供页面-with-mpm=worker / 让apache以worker方式运行-enable-authn-dbm=shared / 对动态数据库进行操作。Rewrite时需要)memcached php-memcache 的安装及使用memcached版本:memcached-1.4.5.tar.gz 官网:/Memcache的PHP扩展:memcache-3.0.6.tgz 官网:/package/memcache本例假设配置文件包放在:/ftp/,php安装路径:/usr/local/Php1、安装memcached前,先须安装libevent,用rpm命令看下是否已安装如下二个文件,如果没有,在光盘中可找到:libevent-1.4.13-1libevent-devel-1.4.13-1 2、安装memcached,同时需要安装中指定libevent的安装位置:# cd /ftp# tar zxvf memcached-1.4.5.tar.gz# cd memcached-1.4.5# ./configure -with-libevent=/usr# make# make install 3、测试是否成功安装memcached# ls -al /usr/local/bin/mem*-rwxr-xr-x 1 root root 201993 04-11 16:43 /usr/local/bin/memcached 4、安装Memcache的PHP扩展tar xzf memcache-3.0.6.tgzcd memcache-3.0.6/usr/local/Php/bin/phpize./configure -enable-memcache -with-php-config=/usr/local/Php/bin/php-config -with-zlib-dirmakemake install如果在安装到/usr/local/Php/bin/phpize,有下列错误提示:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.那么请安装下列三个rpm包,也在光盘中:rpm -ivh m4-1.4.5-3.el5.1.i386.rpmrpm -ivh imake-1.0.2-3.i386.rpmrpm -ivh autoconf-2.59-12.noarch.rpm5、上述安装完后会有类似这样的提示:Installing shared extensions: /usr/local/Php/lib/php/extensions/no-debug-non-zts-20090626/6、把php.ini中的extension_dir = “./”修改为extension_dir = “/usr/local/Php/lib/php/extensions/no-debug-non-zts-20090626/”7、添加一行来载入memcache扩展:extension=memcache.so 8、启动Memcache的服务器端,也可以启动多个守护进程,不过端口不能重复(如不配置端口默认为:11211)。memcached -d -m 10 -u root -l localhost -c 256 -P /tmp/memcached.pidmemcached -d -m 10 -u root -l 4 -p 21000 -c 256 -P /tmp/memcached2.pid-d选项是启动一个守护进程,-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,-u是运行Memcache的用户,我这里是root,-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址00,-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid 9、.如果要结束Memcache进程,执行:# kill cat /tmp/memcached.pid10、重启apache,查看phpinfo(),可以看到已经加载memcache11、Memcache环境测试connect(,11211);/此处的IP和端口必须和第8步相同$mem-set(key,This is a test!,0,60);$val=$mem-get(key);echo $val;?如果有输出This is a test!,就表示环境搭建成功eAccelerator加速器的安装考虑对PHP再进行一些优化,前两年接触过MMCache和eAccelerator,尤其对eAccelerator非常喜欢,这次优化也选择了它,下面整理一些文档和大家分享。 前一段时间完成了服务器从FreeBSD4.10到6.1的升级,同时把PHP也升级到了最新的PHP5.1.4,Apache也升级到了最新的Apache2.2,为了更好的提高系统的性能考虑对PHP再进行一些优化,前两年接触过MMCache和eAccelerator,尤其对eAccelerator非常喜欢,这次优化也选择了它,下面整理一些文档和大家分享。目录: 一、eAccelerator介绍 1、背景 2、原理 二、安装和配置 1、支持平台 2、系统要求 3、安装 4、php.ini文件配置 5、验证安装 三、使用eAccelerator开发PHP代码 1、API文档和接口说明 2、开发范例 四、附录和参考资料一、eAccelerator介绍1、背景 eAccelerator 是一个免费开源的PHP加速、优化、编译和动态缓存的项目,它可以通过缓存PHP代码编译后的结果来提高PHP脚本的性能,使得一向很复杂和离我们很远的PHP脚本编译问题完全得到解决。通过使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载,可以提高PHP应用执行速度最高达10倍。eAccelerator 项目诞生于2004年,当时它是作为 Turck MMCache 项目的一个分支提出并投入开发的。 Turck MMCache 由 Dmitry Stogov 开发,是个非常优秀的PHP内存缓存加速系统,如今仍然有很大部分 eAccelerator 的代码应用到该项目中,目前该项目有很长时间没有更新了,对于最新的PHP5.x的支持还未推出。2、原理 eAccelerator 通过把经过编译后的PHP代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。它的效率非常高,从创建共享内存到查找编译后的代码都在非常短的时间内完成,对于不能缓存到共享内存中的文件和代码,eAccelerator还可以把他们缓存到系统磁盘上。eAccelerator 同样还支持PHP代码的编译和解释执行,你可以通过encoder.php脚本来对php代码进行编译达到保护代码的目的,经过编译后的代码必须运行在安装了eAccelerator的环境下。eAccelerator编译后的代码不能被反编译,它不象其他一些编译工具那样可以进行反编译,这将使得代码更加安全和高效。二、eAccelerator安装配置1、支持平台 由于aAccelerator提供了大部分基于共享内存的API,所以在*nix的平台上将得到更好的支持,虽然也发布了基于windows平台的binary版本,但我在这里就只提供基于*nix平台的配置和说明,目前可以支持的平台包括Linux, FreeBSD, OpenBSD, Mac OS X, Solaris, AIX en HP-UX。2、系统要求 php4 or php5 autoconf automake libtool m4 eAccelerator 只支持使用 mod_php 或者 fastcgi mode 安装的PHP3、安装 先去eAccelerator官方下载最新版的源码包:eaccelerator-0.9.5-beta.tar.bz2#tar -zxvf ./eaccelerator-0.9.5-beta2.tar.bz2 #cd eaccelerator-0.9.5-beta2 #export PHP_PREFIX=/usr/local (把PHP安装目录导入到环境变量,FreeBSD默认是/usr/local) #$PHP_PREFIX/bin/phpize #./configure -enable-eaccelerator=shared -with-php-config=$PHP_PREFIX/bin/php-config #make #make install 4、ini文件配置 安装完成,下面开始配置php.ini文件,eAccelerator提供了两种配置和调用方式,分别如下。安装为 Zend extension 模式:zend_extension=/usr/local/lib/php/20050922/eaccelerator.so eaccelerator.shm_size=16 eaccelerator.cache_dir=/tmp/eaccelerator eaccelerator.enable=1 eaccelerator.optimizer=1 eaccelerator.check_mtime=1 eaccelerator.debug=0 eaccelerator.log_file = /var/log/httpd/eaccelerator_log eaccelerator.filter= eaccelerator.shm_max=0 eaccelerator.shm_ttl=0 eaccelerator.shm_prune_period=0 eaccelerator.shm_only=0 press=1 press_level=9 如果你使用了thread safe模式安装的PHP,你必须使用 “zend_extension_ts” 替换第一行的 “zend_extension”.安装为 PHP extension 模式:(这是大部分采用的方式)extension=eaccelerator.so eaccelerator.shm_size=16 eaccelerator.cache_dir=/tmp/eaccelerator eaccelerator.enable=1 eaccelerator.optimizer=1 eaccelerator.check_mtime=1 eaccelerator.debug=0 eaccelerator.log_file = /var/log/httpd/eaccelerator_log eaccelerator.filter= eaccelerator.shm_max=0 eaccelerator.shm_ttl=0 eaccelerator.shm_prune_period=0 eaccelerator.shm_only=0 press=1 press_level=9 有关php.ini文件的详细配置说明,请参照源码目录的README文档或者访问官方文档:ini setting完成安装配置后,我们最后要创建缓存目录#mkdir /tmp/eaccelerator #chmod 777 /tmp/eaccelerator 5、验证安装结果 通过浏览器访问您的phpinfo()页面或者运行 php -i 得到php配置信息,里面如果看到类似下面的信息就表示安装成功了。This program makes use of the Zend Scripting Language Engine: Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with eAccelerator v0.9.5-beta2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator 我的机器上同时还安装了Zend Optimizer3.0.1,所以看到的信息如下:This program makes use of the Zend Scripting Language Engine: Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with eAccelerator v0.9.5-beta2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator with Zend Extension Manager v1.0.10, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v3.0.1, Copyright (c) 1998-2006, by Zend Technologies 如果你打开了eAccelerator的debug选项,可以从日志中看到类似下面的信息#tail /var/log/httpd/eAccelerator_log EACCELERATOR hit: /var/www//blog/index.php EACCELERATOR hit: /var/www//blog/wp-blog-header.php EACCELERATOR hit: /var/www//blog/wp-config.php EACCELERATOR hit: /var/www//blog/wp-settings.php EACCELERATOR hit: /var/www//blog/wp-content/plugins/wp-cache/wp-cache-phase1.php . 以上信息表示文件都得到了缓存和命中。至此,我们就完成了全部的安装和配置,好好享受eAccelerator带给你的惊喜吧,根据Michael的测试,效果的确相当的好。三、在PHP中可以使用eAccelerator的API开发1、API和文档说明:eAccelerator提供了便捷便捷而又稳定的本机缓存实现方式,由于大部分代码实现基于共享内存,所以只能在*nix平台中使用,Windows平台Michael就暂时不知道何时有这方面的支持了。 eAccelerator提供如下的API接口和文件:(下述文件均在源码包的doc/php/目录下)文件列表:cache.php dasm.php encoder.php info.php loader.php session.php shared_memory.php 接口列表:array eaccelerator_cached_scripts () void eaccelerator_cache_output (string $key, string $eval_code, int $ttl = 0) void eaccelerator_cache_page (string $key, int $ttl = 0) void eaccelerator_cache_result (string $key, string $code, int $ttl = 0) void eaccelerator_caching (boolean $flag) void eaccelerator_clean () void eaccelerator_clear () array eaccelerator_dasm_file (mixed $filename) mixed eaccelerator_encode (mixed $src, mixed $prefix = , string $pre_content = , string $post_content = ) void eaccelerator_gc () mixed eaccelerator_get (string $key) array eaccelerator_info () array eaccelerator_list_keys () void eaccelerator_load () boolean eaccelerator_lock (string $key) void eaccelerator_optimizer (boolean $flag) void eaccelerator_purge () boolean eaccelerator_put (string $key, mixed $value, int $ttl = 0) array eaccelerator_removed_scripts () boolean eaccelerator_rm (string $key) void eaccelerator_rm_page (string $key) boolean eaccelerator_set_session_handlers () boolean eaccelerator_unlock (string $key) 有关上述文档详细说明请参考官方文档:API Documents下面有部分网友翻译后的接口说明:eaccelerator_put($key, $value, $ttl=0) 将 $value 以 $key 为键名存进缓存(php4下支持对像类型,看源码好像zend2里不支持了),$ttl 是这个缓存的生命周期,单位是秒,省略该参数或指定为 0 表示不限时,直到服务器重启清空为止。eaccelerator_get($key) 根据 $key 从缓存中返回相应的 eaccelerator_put() 存进去的数据,如果这项缓存已经过期或不存在那么返回值是 NULLeaccelerator_rm($key) 根据 $key 移除缓存eaccelerator_gc() 移除清理所有已过期的 keyeaccelerator_lock($key) 为 $key 加上锁定操作,以保证多进程多线程操作时数据的同步。需要调用 eaccelerator_unlock($key) 来释放这个锁或等待程序请求结束时自动释放这个锁。 例如: eaccelerator_unlock($key) 根据 $key 释放锁eaccelerator_cache_output($key, $eval_code, $ttl=0) 将 $eval_code 代码的输出缓存 $ttl 秒,($ttl参数同 eacclerator_put) 例如: eaccelerator_cache_result($key, $eval_code, $ttl=0) 将 $eval_code 代码的执行结果缓存 $ttl 秒,($ttl参数同 eacclerator_put),类似 cache_output 例如: eaccelerator_cache_page($key, $ttl=0) 将当前整页缓存 $ttl 秒。 例如: eaccelerator_rm_page($key) 删除由 eaccelerator_cache_page() 执行的缓存,参数也是 $key 2、PHP代码中使用eAccelerator加速下面有一个测试的代码,你可以测试一下eAccelerator强大的威力:(该代码在 cli 模式下可能无效)?php class test_cache var $pro = hello;function test_cache() echo Object Created!n; function func() echo , the world!; function now($t) echo date(Y-m-d H:i:s, $t); $tt = eaccelerator_get(test_tt); if (!$tt) $tt = new test_cache; eaccelerator_put(test_tt, $tt); echo no cached!n; else echo cachedn; echo $tt-pro; $tt-func(); $tt-now(time() + 86400); ? 另外,据说在著名的vBulletin 3.60Beta版里面已经集成了对eAccelerator的支持,下面是一段来自vBulletin里面的代码 复制代码 代码如下: / # / eAccelerator/* * Class for fetching and initializing the vBulletin datastore from eAccelerator * * package vBulletin * version $Revision: 0.1 $ * date $Date: 2005/06/12 13:14:18 $ */ class vB_Datastore_eAccelerator extends vB_Datastore /* * Fetches the contents of the datastore from eAccelerator * * param array Array of items to fetch from the datastore * * return void */ function fetch($itemarray) if (!function_exists(eaccelerator_get) trigger_error(eAccelerator not installed, E_USER_ERROR); foreach ($this-defaultitems AS $item) $this-do_fetch($item); if (is_array($itemarray) foreach ($itemarray AS $item) $this-do_fetch($item); $this-check_options();/ set the version number variable $this-registry-versionnumber =& $this-registry-optionstemplateversion; /* * Fetches the data from shared memory and detects errors * * param string title of the datastore item * * return void */ function do_fetch($title) $data = eaccelerator_get($title); if ($data = null) / appears its not there, lets grab the data, lock the shared memory and put it in $data = ; $dataitem = $this-dbobject-query_first( SELECT title, data FROM . TABLE_PREFIX . datastore WHERE title = . $this-dbobject-escape_string($title) . ); if (!empty($dataitemtitle) $data =& $dataitemdata; $this-build($dataitemtitle, $dataitemdata); $this-register($title, $data); /* * Updates the appropriate cache file * * param string title of the datastore item * * return void */ function build($title, $data) if (!function_exists(eaccelerator_put) trigger_error(eAccelerator not installed, E_USER_ERROR); eaccelerator_lock($title); eaccelerator_put($title, $data); eaccelerator_unlock($title); 四、附录和参考资料 eAccelerator 官方网站 :-enable-eaccelerator=shared -with-eaccelerator-disassembler -enable-tokenizer -with-php-config=/usr/lo eaccelerator zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so eaccelerator.shm_size=32 eaccelerator.cache_dir=/opt/web/eaccelerator_caches eaccelerator.enable=1 eaccelerator.optimizer=1 eaccelerator.check_mtime=1 eaccelerator
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务工作要点-财务工作计划
- 财务信息保密及内部审计规范合同
- 采石场股份转让与产业链金融合作协议
- 智能采购系统与合同合规性审查合同
- 消化内科晚间护理
- 车贷车辆价值评估及保险合同
- 成品油运输车辆保险及理赔合同
- 车辆无偿租赁与保险服务合同范本
- 休闲餐饮租赁及品牌运营合同
- 建筑工程安全承包管理协议书范本
- 宝钢武钢并购重组案例研究
- 胰岛素的种类及应用(共26张PPT)
- 眩晕诊疗方案总结优化
- 转让鱼塘股份合同范本
- 贵州省毕节地区金沙县2022-2023学年小学六年级数学毕业检测指导卷含答案
- 抖音带货主播劳动合同范本
- DB32-T 4284-2022 居民住宅二次供水工程技术规程
- 食品有限公司制冷机组安全风险分级管控清单
- 经济学思维方式智慧树知到答案章节测试2023年西安交通大学
- 经济林栽培学 PPT课件 竹子栽培
- 2023年山东省威海市中考历史试题
评论
0/150
提交评论