搭建php-fpm工作方式的LAMP环境,实现wordpress
2018-06-28 本文已影响9人
任总
1、LAMP定义
- LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。
- 虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。
2、搭建Lamp
- 首先关闭selinux和防火墙
[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@bogon ~]# vim /etc/selinux/config
SELINUX=disabled
[root@bogon ~]# systemctl reboot #重启生效
(1)安装mariadb服务
- 安装
[root@bogon ~]# yum install mariadb-server -y
- 编辑/etc/my.cnf.d/server.cnf配置文件
[root@bogon ~]# vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve=ON #添加
innodb_file_per_table=ON #添加
- 开启mariadb服务
[root@bogon ~]# systemctl start mariadb
[root@bogon ~]# systemctl enable mariadb
[root@bogon ~]# ss -tnl
- 设置数据库安全设定
[root@bogon ~]mysql_secure_installation
Enter current password for root (enter for none): #输入root密码第一次没有直接回车
Set root password? [Y/n] y #设定root密码输入y
New password: #新密码
Re-enter new password: #再输入一次
Remove anonymous users? [Y/n] y #是否移除匿名用户
Disallow root login remotely? [Y/n] y #是否远程禁止root登录
Remove test database and access to it? [Y/n] y #是否删除测试数据库
Reload privilege tables now? [Y/n] y #是否重新加载特权表
- 授权一个普通用户并测试登录
[root@bogon ~]# mysql -u root -p123 #登录数据库
MariaDB [(none)]> GRANT ALL ON *.* TO 'test'@'192.168.%.%' IDENTIFIED BY "123"; #创建授权用户
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES; #刷新
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> EXIT #退出
Bye
[root@bogon ~]# mysql -utest -h'192.168.1.11' -p123 测试登录
(2)安装php服务
- 安装
[root@bogon ~]# yum -y install php #安装php
[root@bogon ~]# yum -y install php-fpm php-mysql php-mbstring php-mcrypt #安装PHP相关模块
服务配置文件:/etc/php-fpm.conf,/etc/php-fpm.d/.conf
php环境配置文件:/etc/php.ini,/etc/php.d/.ini
- 配置编辑 /etc/php-fpm.d/www.conf文件
[root@bogon ~]# cp /etc/php-fpm.d/www.conf{,.bak} #备份原配置文件
[root@bogon ~]# vim /etc/php-fpm.d/www.conf #编辑
listen =127.0.0.1:9000 修改可以监听的主机可以本地 *:9000 也可以其他主机
listen.backlog = -1后援队列 -1代表无限长
listen.allowed_clients = 127.0.0.1 允许那些客户端请求,授权连接
user = apache
group = apache
pm=dynamic static或者dynamic 默认dynamic
pm.max_children=50 子进程数量
pm.start_server=5 开始启动进程数量
pm.max_spare_servers=15 最大空闲数量
pm.max_requests=500 每个进程响应多少个请求然后关掉
pm.starus_path=/pm-status 内置的状态页
ping.path=pong 可以ping服务器远程状态探测
php_value[session.save_hadler]=files 客户会话保留
php_value[session.save_save_path]=/var/lib/php/session 目录不存在要手动创建然后修改
- 建立/var/lib/php/session文件
[root@bogon ~]# mkdir /var/lib/php/session -pv #建立文件
[root@bogon ~]# chown apache.apache /var/lib/php/session #修改属组属主
[root@bogon ~]# ll /var/lib/php/ #查看
total 0
drwxrwx--- 2 apache apache 6 Apr 12 15:04 session
- 启动php并查看监听端口
[root@bogon ~]# systemctl start php-fpm
[root@bogon ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 172.16.15.106:9000 *:*
LISTEN 0 50 *:3306 *:*
(3)、安装httpd服务
- 安装httpd
[root@bogon ~]# yum install httpd -y #安装httpd
[root@bogon ~]# httpd -M #查询是否有fcgi模块
.......
proxy_fcgi_module (shared)
.......
- 建立存储网页资源目录
[root@bogon ~]# mkdir /data/www/html -pv
mkdir: 已创建目录 "/data"
mkdir: 已创建目录 "/data/www"
mkdir: 已创建目录 "/data/www/html"
- 编辑创建/etc/httpd/conf.d/fcgi.conf配置文件
[root@httpd ~]# vim /etc/httpd/conf.d/fcgi.conf
DirectoryIndex index.php #设置默认主页为index.php
ProxyRequests off #关闭正向代理
将以.php结尾的URL代理转发给fcgi://127.0.0.1:9000
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/www/html/$1
ProxyPassMatch ^/(ping|pmstatus)$ fcgi://127.0.0.1:9000/$1
- 虚拟主机的配置
DirectoryIndex index.php
<VirtualHost *:80>
ServerName www.hehe.com
DocumentRoot /data/www/html
ProxyRequests Off #关闭反向代理
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/www/html/$1 #将以.php结尾的URL代理转发给fcgi://url
ProxyPassMatch ^/(ping|pmstatus)$ fcgi://127.0.0.1:9000/$1 #将以ping或pmstatus结尾的URL代理转发给fcgi://url
<Directory "/data/www/html">
Options None
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
~
- 在php-fpm服务器上创建编辑index.php 和mysql.php进行测试
[root@bogon ~]# vim /data/www/html/index.php
<?php
phpinfo();
?>
[root@bogon ~]# vim /data/www/html/mysql.php
<?php #编辑mysql登录测试页
$conn = mysql_connect('192.168.1.11','test','123');
if ($conn)
echo "Connected to mysql.";
else
echo "Fail";
?>
[root@bogon ~]# httpd -t #语法检查
Syntax OK
[root@bogon ~]# systemctl start httpd #启动httpd
-
测试用浏览器打开http服务器ip
image.png -
测试数据库链接
image.png -
测试ping页面
image.png
3、部署wordpress
(1)下载安装wordpress
[root@bogon ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
[root@bogon ~]# ls
wordpress-4.9.4-zh_CN.tar.gz
[root@bogon ~]# tar xf wordpress-4.9.4-zh_CN.tar.gz
[root@bogon ~]# cp -a wordpress /data/www/html
[root@bogon ~]# chown -R apache:apache /data/www/html/wordpress/
image.png
- 给WordPress创建数据库及创建授权用户
[root@bogon ~]# mysql -uroot -p123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE wordpress; #创建一个数据库
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'wpuser'@'192.168.%.%'IDENTIFIED BY '12345678'; #授权用户
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> EXIT
Bye
-
接着继续在网页设置wordpress
image.png
-
设置相关信息后点击安装
image.png