LAMP 1、yum安装LAMP (PHP作为apache的模块运行) 2、安装wordpress 3、安装phpMyAdmin 4、安装xcache 5、编译安装LAMP 6、支持fastCGI模式 ================================================================================================================================================ rpm包安装 (PHP作为web服务器的模块运行) 1、CentOS7安装LAMP 1、安装 yum install httpd php php-mysql mariadb-server mariadb systemctl enable httpd systemctl enable mairadb.service 2、修改httpd配置文件 $ vim /etc/conf/httpd.conf DirectoryIndex index.php index.html 3、提供测试文件 $ vim /var/www/html/index.php 4、启动服务 systemctl start httpd systemctl start mairadb.service 5、浏览器测试是否正常 Note: 1、不推荐在使用 Apache 2.2 的版本中使用线程化 MPM。应使用预分支 MPM,即Apache 2.0 和 2.2 默认的 MPM。 为什么不应该在实际运作环境中的 Apache2.2 中使用线程化的 MPM? PHP 是粘合剂。它将几十种第三方的库粘合到一起来创建很酷的 web 应用,并通过很直观且易于学习的语言界面使其看上去好像一个整体。PHP 的灵 活与强大依赖于底层平台的稳定与耐用。起码需要将一个可运作的操作系统,一个可运作的 web 服务器以及可运作的第三方库粘合起来。其中任何一 方不运作了,PHP 都需要有方法来识别出问题并且快速解决。如果没有完全独立的执行线程,完全独立的内存单元和稳定的空间对付每个请求,那底层 架构就太复杂以至于不稳定因素更容易进入到 PHP 系统中。如果必须要用线程化的 MPM,应使用 FastCGI,使 PHP 运行于自己独立的内存空间中。最 后需要指出,不使用线程化 MPM 在 Windows 系统中没那么强烈,因为 Windows 中的大多数库都理应在多线程下安全运行。 2、默认安装的PHP是作为apache的模块工作的 2、CentOS6安装LAMP Note: CentOS6默认安装的PHP版本为5.3.3,此版本的PHP支持 apache MPM模块当中的 worker 模型。 ================================================================================================================================================ 安装wordpress 1、下载 wget https://cn.wordpress.org/wordpress-4.7.3-zh_CN.tar.gz 2、移动网站文件 mv * /var/www/html/ 3、提供配置文件 cp wp-config-sample.php wp-config.php 4、配置 define('DB_NAME', 'wordpress'); define('DB_USER', 'admin'); define('DB_PASSWORD', 'xxxxxxx'); define('DB_HOST', '192.168.1.150'); 5、创建数据库 CREATE DATABASE wordpress; GRANT ALL PRIVILEGES on wordpress.* TO 'admin'@'localhost' IDENTIFIED BY 'wordpress'; GRANT ALL PRIVILEGES on wordpress.* TO 'admin'@'127.0.0.1' IDENTIFIED BY 'wordpress'; FLUSH PRIVILEGES; # 使用授权账号测试登录 mycli -u wordpress_USER -h localhost 6、安装wordpress 访问页面进行测试 http://example.com/wp-admin/install.php 7、升级 将新版本的wordpress下的所有文件复制覆盖到原wordpress目录下。 第一步:替换 WordPress 文件 删除旧的wp-includes文件夹和wp-admin文件夹,备份wp-config.conf 文件以及 wp-content 目录。获取最新版本的 WordPress。将其下载或解压 到本地机器,也可以直接下载到服务器。 Note: 1、如果要用 tar -xvzf latest.tar.gz -C ./(文件夹名称)命令将tar.gz文件解压到文件夹,需要将“文件夹名称”替换成你的文件夹的文件名。 2、新的WordPress文件复制到服务器上,覆盖根目录下的原有文件,除了wp-content文件里指的是替换所有WordPress文件,包括根目录下的文件。 如果使用Default主题或Classic主题并做了修改,可以不替换该主题的文件。 注意:对wp-content文件夹、plugins文件夹以及themes文件夹应进行特别处理。应备份这些文件的内容,而非整个文件夹。有时复制整个文件夹会 覆盖之前所有自定义内容。 第二步:升级 WordPress 登录你的WordPress网站后台(/wp-admin)。如果这时需要升级数据库,WordPress会检测数据库信息并给出一个 http://example.com/wordpress/wp-admin/upgrade.php 8、更换主题 cp -a nisarg.1.2.8.1.zip /var/www/html/wordpress/wp-content/themes/ ================================================================================================================================================ 安装phpMyAdmin Note:phpMyAdmin 4.7.4 ompatible with PHP 5.5 to 7.1 and MySQL 5.5 and newer. 1、介绍 phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的[MySQL的数据库管理工具],让管理者可用Web接口管理MySQL数据库。借由此Web接 口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量数据的导入及导出更为方便。其中一个更大的优势在由于phpMyAdmin跟其于他PHP 程序一样在网页服务器上运行,但是您可以在任何地方使用这些程序产生的HTML页面,也就是于远程管理MySQL数据库,方便的[创建]、[修改]、[删除数 据库]及[数据表]。也可借由phpMyAdmin创建常用的php语法,方便编写网页时所需要的sql语法正确性。 2、rpm包安装 1、安装 yum install phpmyadmin php-mcrypt Note:php-mcrypt:mcrypt 是php里面重要的加密支持扩展库Mcrypt,扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原 2、配置 # 配置文件 /etc/httpd/conf.d/phpMyAdmin.conf /etc/phpMyAdmin/config.inc.php # 修改phpMyAdmin.conf $ Require all granted #设置访问权限 # 修改config.inc.php $ cfg['Servers'][$i]['host'] = '127.0.0.1'; 3、phpMyAdmin配置文件 参考配置相关文档:https://docs.phpmyadmin.net/zh_CN/latest/config.html 3、源码安装 1、下载源码包并解压到web服务器站点目录下 wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.zip unzip phpMyAdmin-4.7.4-all-languages.zip 2、复制到指定目录下 cp -a phpMyAdmin-4.7.4-all-languages /var/www/html/ 3、创建软链接 ln -s phpMyAdmin-4.7.4-all-languages/ phpMyAdmin 4、提供配置文件 cp config.sample.inc.php config.inc.php 5、修改配置文件 $ vim config.inc.php cfg['blowfish_secret'] = 'Hv6V8jmeNJ5r5ioCLCVxKlpQsf87SahV0I8THcma12uX8Cnl/tEgXQ=='; cfg['Servers'][$i]['host'] = '127.0.0.1'; Note:使用 openssl rand --base64 40 6、安装依赖 yum install php-mbstring # 多字节字符串支持 7、重新启动httpd systemctl restart httpd ================================================================================================================================================ 安装xcache 1、介绍 项目站点:https://xcache.lighttpd.net/ XCache是一个开源的 opcode 缓存器/优化器。XCache可以显著提高php的性能,其原理是将php源码编译后的 opcode 缓存到内存,避免反复编译。 够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载,XCache作为php的模块使用。 2、源码安装xcache 1、下载 wget https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz 2、安装依赖 yum install php-devel 3、执行 /usr/local/php/bin/phpize 4、编译 ./configure --enable-xcache --with-php-config=/usr/bin/php-config make && make install 编译成功后出现: Installing shared extensions: /usr/lib64/php/modules/ 5、配置 在源码目录下复制样例配置文件:cp xcache.ini /etc/php.d/ extension = /usr/lib64/php/modules/xcache.so 3、rpm包安装 1、安装 yum install php-xcache ================================================================================================================================================ 编译安装LAMP(CentOS6) 1、安装顺序 安装httpd MariaDB PHP 2、编译安装httpd-2.4 2、二进制格式安装MariaDB 3、编译安装PHP 1、PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库Mcrypt和Mhash。 yum install libmcrypt libmcrypt-devel 其他依赖: yum install libxml2-devel yum install bzip2-devel 2、编译参数 ./configure \ --prefix=/usr/local/php \ # 安装目录 --with-mysql=/usr/local/mysql \ # 如果是编译安装的MySQL或是二进制包的MySQL,则需要指明MySQL的数据文件路劲 如果MySQL是rpm安装,则此处只需要写--with-mysql --with-openssl \ # 支持OpenSSL --with-mysqli=/usr/local/mysql/bin/mysql_config \ # 另外一种通信机制 PHP-MySQL 函数库是 PHP 操作 MySQL 资料库最原始的扩展库,PHP-MySQLi 的 i 代表 Improvement ,相当于前者的增强版,也包含了相对进阶的功能,另外本身 也增加了安全性,比如可以大幅度减少 SQL 注入等问题的发生。 --enable-mbstring \ # 启用多字节字符串支持 --with-freetype-dir \ # 与字体相关,它是一个为各种应用程序提供通用的字体文件访问的软件包 --with-jpeg-dir \ # 激活 jpeg-6b 的支持 --with-png-dir \ # 激活 png 的支持 --with-zlib \ # 压缩库,定义 zlib 的安装目录 --enable-sockets \ # 支持基于socket工作 ** --with-apxs2=/usr/local/httpd24/bin/apxs \ # 共享Apache2处理程序模块,编译共享的 Apache 模块 --with-mcrypt \ # Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原 --with-config-file-path=/etc \ # 配置文件 --with-config-file-scan-dir=/etc/php.d \ # 扩展配置文件目录 --with-bz2 \ # 支持bz2压缩格式 ** --enable-maintainer-zts \ # 与线程安全相关 --with-libxml-dir=/usr \ --enable-xml 测试通过: ./configure \ --prefix=/usr/local/php \ --with-openssl \ **--with-mysqli=/usr/local/mysql/bin/mysql_config \ **--with-mysqli=mysqlnd \ **--with-pdo-mysql=mysqlnd \ --enable-mbstring \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --enable-sockets \ --with-apxs2=/usr/local/httpd24/bin/apxs \ --with-mcrypt \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d Note: 1、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项 2、fcgi --enable-fastcgi 如果启用,CGI 模块将被编译为支持FastCGI。PHP 4.3.0 之后的版本有效。PHP 5.3.0起,此参数不再存在,并使用 --enable-cgi替代 3、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。 mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),从PHP 5.4开始它就是默认设置了。 3、后续配置 头文件 库文件 帮助文档 4、为php提供配置文件,从源码目录下复制 cp php.ini-production /etc/php.ini 5、配置httpd与php结合工作 1、修改 httpd.conf vim /etc/httpd/httpd.conf 添加如下二行 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps 2、定位至DirectoryIndex index.html 修改为: DirectoryIndex index.php index.html 3、测试php是否连接 4、测试MySQL是否连接正常 数据库另一种测试: close(); ?> ================================================================================================================================================ 支持fastCGI模式 将php运行于fpm模式 1、rpm方式安装 1、安装 yum install php-fpm 2、配置httpd与php-fpm结合工作 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so Note: 在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,充当php-fpm的客户端,它其实是作为mod_proxy.so模块的扩充 ProxyRequests Off # 关闭正向代理 ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1 # 把以.php结尾的文件请求发送到php-fpm进程php-fpm至少需要知道运行 的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个 参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要 手动指定。 /PATH/TO/DOCUMENT_ROOT/ 是网站文件的目录 # vim /etc/httpd/httpd.conf 添加如下二行 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps DirectoryIndex index.php index.html 3、php-fpm配置文件 4、Note: 1、确保运行php-fpm进程的用户对session目录有读写权限 mkdir /var/lib/php/session chown apache.apache /var/lib/php/session 2、php-5.3.2之前的版本不支持fastCGI 2、编译安装php-fpm 1、编译参数 ./configure \ --prefix=/usr/local/php \ --with-mysql=/usr/local/mysql \ --with-openssl \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --enable-mbstring \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --enable-xml \ --enable-sockets \ #--with-apxs2=/usr/local/apache24/bin/apxs \ # 去掉 --with-mcrypt \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --with-bz2 \ --enable-maintainer-zts \ --with-zlib \ --with-libxml-dir=/usr \ --enable-fpm # 添加 测试通过: ./configure \ --prefix=/usr/local/php \ --with-openssl \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-pdo-mysql=mysqlnd \ --enable-mbstring \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --enable-sockets \ --with-apxs2=/usr/local/httpd24/bin/apxs \ --with-mcrypt \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --enable-maintainer-zts \ --enable-fpm # 添加 ./configure \ --prefix=/usr/local/php \ --with-openssl \ --with-mysqli \ --with-pdo-mysql=mysqlnd \ --enable-mbstring \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --enable-sockets \ --with-apxs2=/usr/local/httpd24/bin/apxs \ --with-mcrypt \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --enable-maintainer-zts \ --enable-fpm # 添加 2、提供php配置文件 cp php.ini-production /etc/php.ini 3、提供服务脚本 为php-fpm提供SysV init脚本,并将其添加至服务列表: # cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm # chmod +x /etc/rc.d/init.d/php-fpm # chkconfig --add php-fpm # chkconfig php-fpm on 4、提供php-fpm配置文件 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 修改: pm = static|dynamic static:固定数量的子进程;pm.max_children dynamic:子进程数量以动态模式管理 配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行): pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8 pid =/usr/local/php/var/run/php-fpm.pid Note: 可以使用telent工具测试php-fpm是否能够正常通信。telnet x.x.x.x 9000 5、配置httpd与php-fpm结合工作 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so ProxyRequests Off # 关闭正向代理 ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1 # 把以.php结尾的文件请求发送到php-fpm进程php-fpm至少需要知道运行 的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个 参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要 手动指定。 # vim /etc/httpd/httpd.conf 添加如下二行 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps DirectoryIndex index.php index.html 6、验证 使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了): # ps aux | grep php-fpm 默认情况下,fpm监听在127.0.0.1的9000端口,也可以使用如下命令验正其是否已经监听在相应的套接字。 # netstat -tnlp | grep php-fpm tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 689/php-fpm 编译参数: ./configure \ --prefix=/usr/local/php-7.1.24 \ --enable-fpm \ --with-fpm-user=apache \ --with-fpm-group=apache \ --with-fpm-systemd \ --disable-short-tags \ --with-openssl \ --with-pcre-regex \ --with-zlib \ --with-bz2 \ --enable-calendar \ --enable-sockets \ --enable-mbstring \ --with-mcrypt \ --with-png-dir \ --with-jpeg-dir \ --with-freetype-dir \ --enable-mbstring \ --with-curl \ --with-gd \ --enable-mysqlnd \ --with-pdo-mysql=mysqlnd \ --enable-inline-optimization ========================================================================================================================================