LAMP环境部署
- 安装前准备:检查是否通过rpm方式安装了相关软件,防止冲突
[root@localhost ~]# rpm -e php php-cli php-ladp php-common php php-mysql --nodeps
[root@localhost ~]# yum -y install zlib-devel xz-devel libxml2
[root@localhost ~]# netstat -lnpt | grep 80
tcp6 0 0 :::80 :::* LISTEN 9031/httpd
[root@localhost ~]# netstat -lnpt | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 10244/mysqld
- 安装扩展工具库:
源代码安装libmcrypt
[root@localhost ]# tar xf libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@localhost ]# cd /usr/src/libmcrypt-2.5.8/
[root@localhost libmcrypt-2.5.8]# ./configure && make && make install
[root@localhost libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/
源代码安装mhash
[root@localhost ~]# tar xf mhash-0.9.9.9.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mhash-0.9.9.9/
[root@localhost mhash-0.9.9.9]# ./configure && make && make install
[root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash.* /usr/lib/
源代码安装mcrypt
[root@localhost ~]# tar xf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mcrypt-2.6.8/
[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
[root@localhost mcrypt-2.6.8]# ./configure && make && make install
- 源代码安装PHP
[root@localhost ~]# tar xf php-5.6.39.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/php-5.6.39/
[root@localhost php-5.6.39]# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php5 --enable-mbstring && make && make install
--prefix=/usr/local/php5 #指定安装目录
--with-mcrypt #加载扩展工具
--with-apxs2=/usr/local/httpd/bin/apxs #设置Apache提供的apxs模块程序文件位置
--with-mysql=/usr/local/mysql #指定mysql服务的安装路径
--with-mysqli=/usr/local/bin/mysql_config #添加mysqli扩展模式
--with-config-file-path=/usr/local/php5 #指定php配置文件“php.ini”的存放路径
--enable-mbstring #启用多字节字符串功能,以便支持中文
报错信息:
checking for specified location of the MySQL UNIX socket... no
configure: error: Cannot find libmysqlclient_r under /usr/local/mysql.
Note that the MySQL client library is not bundled anymore!
处理方法:
[root@localhost php-5.6.39]# cd /usr/local/mysql/lib/
[root@localhost lib]# ln libmysqlclient.so.20.3.11 libmysqlclient_r.so
- 设置LAMP组件环境
设置操作主要包括对PHP的主配置文件php.ini,Apache的主配置文件httpd.conf的
调整,前者用来确定PHP的运行参数,后者用来加载libphp.so模块,以便支持PHP网页。
- 复制样例文件
[root@localhost php-5.6.39]# cp php.ini-production /usr/local/php5/php.ini
- php.ini配置调整
[root@localhost php-5.6.39]# vim /usr/local/php5/php.ini
679 default_charset = "UTF-8" #设置默认字符集为utf-8
811 file_uploads = On #允许通过PHP网页上传文件
820 upload_max_filesize = 200M #允许上传的文件大小限制
823 max_file_uploads = 100 #每个HTTP请求最多允许上传的文件数
660 post_max_size = 16M #每次通过表单POST提交的数据量限制
202 short_open_tag = On #允许识别PHP短语法标记,即<?...?>
- 添加ZendGuardLoader模块
为PHP添加Zend公司开发的ZendGuardLoader优化模块,可以提高PHP程序的执行效率,优化页面加载速度。
[root@localhost ~]# tar xf zend-loader-php5.6-linux-x86_64_update1.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/zend-loader-php5.6-linux-x86_64/
[root@localhost zend-loader-php5.6-linux-x86_64]# ls
opcache.so README.txt ZendGuardLoader.so
[root@localhost zend-loader-php5.6-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/
[root@localhost zend-loader-php5.6-linux-x86_64]# vim /usr/local/php5/php.ini
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1 #在最后添加上即可
- 调整Apache配置
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
162 LoadModule php5_module modules/libphp5.so
163 AddType application/x-httpd-php .php
262 <IfModule dir_module>
263 DirectoryIndex index.html index.php
264 </IfModule>
[root@localhost ~]# systemctl restart httpd
LAMP测试
- 测试PHP是否能正常提供服务,编写一个.php格式的测试网页文件,使用PHP内建的
phpinfo()函数显示服务器的PHP的环境信息。
[root@localhost ~]# vim /usr/local/httpd/htdocs/phptest.php
<?php
phpinfo(); #内建函数用于显示PHP环境信息
?>
浏览器访问:192.168.200.112/phptest.php进行测试
- 测试PHP能否正常访问mysql数据库,其中mysql_connext()函数用于连接MySQL数据
库
[root@localhost ~]# vim /usr/local/httpd/htdocs/mysqltest.php
<?
$link=mysql_connect('127.0.0.1','root','123456');
if($link) echo "Connect Successfully!";
else echo "Connect Faild";
mysql_close($link);
?>
浏览器访问:192.168.200.112/mysqltest.php
部署应用案例 phpMyAdmin
phpMyAdmin通过php语言编写,用来管理MySQL数据的web系统
- 解包并部署到网站根目录
[root@localhost ~]# tar xf phpMyAdmin-4.8.3-all-languages.tar.gz
[root@localhost ~]# mv phpMyAdmin-4.8.3-all-languages /usr/local/httpd/htdocs/phpMyAdmin
- 建立配置文件config.inc.php
[root@localhost ~]# cd /usr/local/httpd/htdocs/phpMyAdmin/
[root@localhost phpMyAdmin]# cp config.sample.inc.php config.inc.php
[root@localhost phpMyAdmin]# vim config.inc.php
$cfg['blowfish_secret'] = 'pwd@123'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
浏览器访问:192.168.200.112/phpMyAdmin/ 数据库用户名和密码:root 123456
创建新的数据库:
部署ComsenzDiscuz BBS论坛系统
[root@localhost ~]# unzip ComsenzDiscuz-DiscuzX-master.zip
[root@localhost ~]# cd DiscuzX/
上传bbs代码并用浏览器访问:192.168.200.112/bbs:
[root@localhost DiscuzX]# mv upload/ /usr/local/httpd/htdocs/bbs
将出错的进行解决:
[root@localhost ~]# cd /usr/local/httpd/htdocs/bbs/
[root@localhost bbs]# cd config/
[root@localhost config]# cp config_global_default.php config_global.php
[root@localhost config]# cp config_ucenter_default.php config_ucenter.php
[root@localhost config]# cd ../
[root@localhost bbs]# chmod -R 777 *
然后点击下一步到安装数据库:
[root@localhost ~]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 92
Server version: 5.7.24 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database bbs;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on *.* to 'bbs'@'localhost' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
在论坛里可以执行修改等一系列设置。