实验: 编译安装LAMP(PHP以FASTCGI的方式工作)并使用XCache为php加速
0.准备软件
下载地址:
- apache, apr, apr-util: https://mirrors4.tuna.tsinghua.edu.cn/
- php: http://www.php.net/
- Mariadb: https://mariadb.org/
- xcache: http://xcache.lighttpd.net/wiki/ReleaseArchive
- Discuz: https://www.discuz.net/
1. 编译安装httpd
(1) 环境准备
yum groupinstall "Development Tools"
yum install pcre-devel openssl-devel
useradd -r -s /sbin/nologin apache
解压缩:
把apr两个文件夹复制到httpd的文件夹下:
注意: apr-util-1.6.1还需要先安装expat-devel,不然会报错:xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
yum install expat-devel -y
(2) 安装步骤如下:
cd httpd-2.4.38
./configure \
--prefix=/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
make && make install
温馨提示:如果之前没有装expat-devel,安装的时候报错,yum install expat-devel之后要make distclean,然后重新执行./configure命令。
(3) 配置httpd
修改httpd的配置文件/app/httpd24/httpd.conf ,使之用我们创建的apache账号运行
添加环境变量:
[root@localhost LAMP]# echo 'PATH=/app/http24/bin:$PATH' > /etc/profile.d/httpd.sh
[root@localhost LAMP]# . /etc/profile.d/httpd.sh
(4)启动
用浏览器访问:
(5)配置开机启动
systemctl enable httpd
2. 二进制安装Mariadb
(1) 准备用户
groupadd -r -g 306 mysql
useradd -r -g 306 -u 306 –d /data/mysql mysql
(2) 准备数据目录,建议使用逻辑卷
mkdir -p /data/mysql
chown mysql:mysql /data/mysql
(3) 准备二进制程序
tar xf mariadb-10.2.30-linux-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -sv mariadb-10.2.30-linux-x86_64 mysql
chown -R root:root /usr/local/mysql/
(4) 准备配置文件
mkdir /etc/mysql/
cp /usr/local/mysql/support-files/my-large.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
[mysqld]中添加选项:
datadir = /data/mysql
innodb_file_per_table = on #老版本需要添加
skip_name_resolve = on #禁止主机名解析,建议使用
(5)生成数据库文件
cd /usr/local/mysql/
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
(6)准备服务脚本,并启动服务
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #拷贝并把服务改名为mysqld
chkconfig --add mysqld
service mysqld start
启动成功:
(7)配置PATH路径
[root@localhost LAMP]# echo ‘PATH=/usr/local/mysql/bin:$PATH’ > /etc/profile.d/mysql.sh
[root@localhost LAMP]# . /etc/profile.d/mysql.sh
运行客户端,成功:
(8)安全初始化
[root@localhost LAMP]# /usr/local/mysql/bin/mysql_secure_installation
3. 编译安装PHP(fpm方式)
yum install libxml2-devel bzip2-devel libmcrypt-devel
tar xvf php-7.1.7.tar.bz2
cd php-7.1.7/
./configure --prefix=/app/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-openssl \
--with-pdo-mysql=mysqlnd \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--enable-fpm \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-maintainer-zts \
--disable-fileinfo
(2)配置php
cp php.ini-production /etc/php.ini #为php提供配置文件
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #提供运行php-fpm的脚本
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on #配置开机启动
cd /app/php/etc
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
service php-fpm start
(3)编辑apache配置文件httpd.conf,以使apache支持php
vim /app/httpd24/conf/httpd.conf
#取消下面两行的注释
LoadModule proxy_module modules/mod_proxy.so #启动代理
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#定位至DirectoryIndex index.html修改为
DirectoryIndex index.php index.html
#加下面四行
AddType application/x-httpd-php .php #使httpd能识别php的文件类型
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
修改好了之后,重启httpd服务。
4. 编译安装php-xcache实现加速访问
1)下载并解压缩xcache-3.2.0.tar.bz2
tar xvf xcache-3.2.0.tar.bz2
2)安装包
yum -y install php-devel
3) phpize 生成编译环境
cd xcache-3.2.0 phpize --clean && phpize
4) 编译
./configure --enable-xcache --with-php-config=/usr/bin/php-config make && make install
5)准备配置文件
cp xcache.ini /etc/php.d/
6)重启服务
apachectl restart
5. 部署Discuz
下载Discuz,放到/app/httpd24/htdocs目录下,并解压:
在浏览器输入地址,进入安装向导:
点击“我同意”进入下一步:
提示这些文件的权限不符合,我们更改权限:
[root@localhost htdocs]# chmod -R 777 upload/
改完之后,刷新网页:
点击下一步
设置好,点击下一步,成功!
至此,LAMP搭建完毕!Enjoy yourself!