部署LAMP
有两种方式:
一种基于module模块方式
一种基于Fast CGI方式
在centos6上不支持Fast CGI方式,所以centos6上不能使module方式部署,我们这里介绍基于module模块方式搭建。
----------------------------------------------------------------------------------------------
基于模块形式部署LAMP:
1、准备linux操作系统
准备了centos7操作系统
2、安装httpd(apache)
yum install httpd
默认主站点是/var/www/html
vim /etc/httpd/conf/httpd.conf
修改DirectoryIndex index.html
DirectoryIndex index.php index.html
启动服务:
systemctl start httpd
确定80端口打开,80端口是httpd服务监听的端口。
3、安装php
yum install php
安装PHP会自动依赖安装另外几个包
php-cli 、php-common
----------------------------------
展示包安装的文件:
[root@localhost ~]# rpm -ql php
/etc/httpd/conf.d/php.conf (添加一个httpd的配置文件,加载了php模块)
/usr/lib64/httpd/modules/libphp5.so (加载了一个php模块)
/var/lib/php/session (创建了一个会话目录,apache用户要对该目录有写权限)
/var/www/icons/php.gif
--------------------------------
[root@localhost ~]# rpm -ql php-cli
/usr/bin/phar
/usr/bin/phar.phar
/usr/bin/php
/usr/bin/php-cgi
/usr/share/doc/php-cli-5.3.3
/usr/share/doc/php-cli-5.3.3/README
/usr/share/doc/php-cli-5.3.3/README.FastCGI
/usr/share/man/man1/php.1.gz
------------------------------------------
[root@localhost ~]# rpm -ql php-common
/etc/php.d (php配置文件目录)
/etc/php.d/curl.ini
/etc/php.d/fileinfo.ini
/etc/php.d/json.ini
/etc/php.d/phar.ini
/etc/php.d/zip.ini
/etc/php.ini (php的主配置文件)
/usr/lib64/php
/usr/lib64/php/modules (PHP的各种模块)
/usr/lib64/php/modules/curl.so
/usr/lib64/php/modules/fileinfo.so
/usr/lib64/php/modules/json.so
/usr/lib64/php/modules/phar.so
/usr/lib64/php/modules/zip.so
/usr/lib64/php/pear
----------------------------------------------
在/etc/php.ini配置文件中修改php时区信息,其他各种设置,可以参考上面php设置内容
在httpd的配置文件中添加了php.conf这个配置文件所以要重启httpd服务。
systemctl reload httpd
查看httpd加载的模块:
httpd -M 查看模块截图
4、测试PHP是否能用
在主站点下编译文件:
cd /var/www/html
vim index.php
测试代码:
<?php
echo date("Y/m/d");
phpinfo();
?>
在浏览器端测试,
5、安装mariadb-server数据库服务端,会依赖安装mariadb
yum install mariadb-server
启动mariadb服务
systemctl start mariadb
查看3306端口:
运行安全脚本
mysql_secure_install
为root设定密码
echo -e ‘\ny\njiake\njiake\ny\nn\ny\ny\n’ | mysql_secure_install
进入数据库创建用户jiake
create user 'jiake'@'IP' identified by 'jiake';
创建数据库blog
create databaseblog;
为用户jiake授权
grant all onblog.* to jiake;
查看mysql.user表中的用户jiake:
6、php程序要想访问数据库,必须要加载连接数据库模块
安装php-mysql
yum install php-mysql
安装文将如下:
[root@centos6-route3 html]# rpm -qlphp-mysql
/etc/php.d/mysql.ini
/etc/php.d/mysqli.ini
/etc/php.d/pdo_mysql.ini
/usr/lib64/php/modules/mysql.so (普通,只能连接mysql)
/usr/lib64/php/modules/mysqli.so (新型,只能连接mysql)
/usr/lib64/php/modules/pdo_mysql.so (可以连接其他类型的数据库)
需要重新启动httpd服务:
systemctl reloadhttpd
(注意:在模块方式中,只要是修改或添加了httpd的配置文件,或者php的配置文件,都需要重启或重新加载httpd服务。)
7、测试php连接数据库
cd /var/www/html
vim index.php
<?php
$mysqli=newmysqli("172.17.251.235","root","jiake");
if(mysqli_connect_errno()){
echo "连接数据库失败!";
$mysqli=null;
exit;
}
echo "连接数据库成功!";
$mysqli->close();
?>
测试:
8、安装PhpMyadmin
https://www.phpmyadmin.net/downloads/
下载支持上面安装的php版本的对应phpmyadmin版本
解压
unzip phpMyAdmin-4.0.10.20-all-languages
拷贝到主站点下,并改名
cp -rphpMyAdmin-4.0.10.20-all-languages /var/www/html/pma
需要安装一个php-mbstring以提供模块支持
yum install php-mbstring
安装的文件如下:
[root@centos6-route3 pma]# rpm -qlphp-mbstring
/etc/php.d/mbstring.ini
/usr/lib64/php/modules/mbstring.so
重新启动httpd服务
systemctl reloadhttpd
9、用浏览器打开,如:
http://172.17.251.235/pma
使用数据库中的账号登录,可以使用管理员账户。
测试:
10、安装WordPress,搭建站
https://cn.wordpress.org/
解压:
tar xvf wordpress-4.8.1-zh_CN.tar.gz
拷贝到主站点下:
cp -r wordpress /var/www/html/wdpss
cd /var/www/html/wdpss
cp wp-config.sample.php wp-config.php
修改wp-config.php
vim wp-config.php
/** WordPress数据库的名称 */
define('DB_NAME','blog');
/** MySQL数据库用户名 */
define('DB_USER','jiake');
/** MySQL数据库密码 */
define('DB_PASSWORD','jiake');
/** MySQL主机 */
define('DB_HOST','172.17.251.235'); (一定要指定数据库的地址)
11、可以在浏览器中就行安装了
测试:
基于CGI接口的fpm方式部署LAMP
其基本步骤与基于module方式部署的方式相同的,只是安装的一个软件是不同的。
基于fpm模式安装软件的是:httpd php-fpm php-mysql mariadb-server
这里只列出不同的地方:
将php卸载,替换为php-fpm
1、安装php-fpm
yum install php-fpm
注意:php-fpm是一个独立的进程,所以需要启动该进程
systemctl startphp-fpm
该进程占用的是9000端口。
测试截图:
(显示服务端口)
修改配置:
vim /etc/php-fpm.d/www.conf
可以修改时区以及其他各种php设置,将监听端口设置为监听所有的端口
listen127.0.0.1:9000 ---> listen 9000
listen.allowed_clients= 127.0.0.1 (改行注释掉默认就支持允许所有地址访问,也可以添加多个地址,以逗号分隔)
-----------------------------------------
[root@localhost wp]# rpm -ql php-fpm
/etc/logrotate.d/php-fpm
/etc/php-fpm.conf
/etc/php-fpm.d
/etc/php-fpm.d/www.conf
/etc/sysconfig/php-fpm
/run/php-fpm
/usr/lib/systemd/system/php-fpm.service
/usr/lib/tmpfiles.d/php-fpm.conf
/usr/sbin/php-fpm
/usr/share/doc/php-fpm-5.4.16
/usr/share/doc/php-fpm-5.4.16/fpm_LICENSE
/usr/share/doc/php-fpm-5.4.16/php-fpm.conf.default
/usr/share/fpm
/usr/share/fpm/status.html
/usr/share/man/man8/php-fpm.8.gz
/var/log/php-fpm
----------------------------------------
2、修改httpd配置文件,使其连接到php-fpm
vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html --->DirectoryIndex index.php index.html
vim /etc/httpd/conf.d/fpm.conf
----------
AddTypeapplication/x-httpd-php .php (添加对应资源的处理程序)
AddTypeapplication/x-httpd-php-source .phps
ProxyRequestsOff
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
-----------
重启php-fpm服务生效
systemctlrestart php-fpm
测试截图:
(查看php-fpm的端口)
3、安装php-mysql
要想使php-fpm程序连接到数据库需要安装php-mysql
该工具提供的只是连接数据库的模块:
[root@localhost wp]# rpm -ql php-mysql
/etc/php.d/mysql.ini
/etc/php.d/mysqli.ini
/etc/php.d/pdo_mysql.ini
/usr/lib64/php/modules/mysql.so
/usr/lib64/php/modules/mysqli.so
/usr/lib64/php/modules/pdo_mysql.so
提供了三种连接模块,需要重启php-fpm服务
systemctlrestart php-fpm
后续的步骤和基于module的方式是相同的。
(需要注意的是,在该模式下,修改或添加httpd的相关配置文件,需要重新加载httpd服务,修改或添加php-fpm的配置文件,需要重新启动php-fpm服务。)
----------------------------------------------------------------------------------------------
实验中出现的错误现象,解决办法:
1、 httpd服务启动不开:配置文件的问题,使用httpd -t 进行配置文件检测。
2、 php安装完成后不能解释执行php的文件:安装php后,在httpd的配置文件/etc/httpd/conf.d/目录下加了一个php.conf的配置文件,相当于修改了httpd的配置文件,需要重新加载httpd服务,可执行systemctl restart httpd 或systemctl reload httpd
3、 php程序无法连接到数据库:原因1:指定的地址一定要是mariadb服务器的IP地址,不要写localhost;原因2:连接数据库的用户和密码一定要正确;原因3:在安装了php-mysql后需要启动httpd服务,php-mysql相当于修改了php的配置文件,php跟httpd是绑定到一块的,所以需要重新启动httpd服务,在基于fpm的方式安装的php,需要重新启动php-fpm.service服务。
4、 PhpMyAdmin无法启动:该软件必须要安装php-mbstring该工具才可以正常启动。
5、 无法安装WordPress:需要在解压到主站点目录下的wp-config.sample.php改名,改为wp-config.php。
本文出自 “Linux运维” 博客,请务必保留此出处http://jk6627.blog.51cto.com/12002684/1975354