實驗: 編譯安裝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!