构建lamp(php-fpm方式)

一、准备一台centos7虚拟机,ip为192.168.10.30。同时作为httpd服务器,fpm服务器,mariadb服务器。192.168.10.20测试机

使用yum仓库下载mariadb     httpd版本:2.4.6,php-fpm版本:5.4.16,mariadb版本:5.5.64,php-mysql版本:5.4.16,php-mbstring版本:5.4.16

(1)安装并配置MariaDB服务

# yum -y install mariadb-server

编辑mariadb的配置文件添加常用选项

# vim /etc/my.cnf.d/server.cnf

skip_name_resolve=ON 跳过名称解析

innodb_file_per_table=ON 每表使用单独的表空间文件

启动mariadb并开机自启动

# systemctl start mariadb

# systemctl enable mariadb

本地连接测试:

# mysql

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>exit

Bye

安全加固

# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

Enter current password for root (enter for none):         为空,直接回车

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

Set root password? [Y/n] Y      设置root密码

New password:                        输入新密码

Re-enter new password:          确认新密码

Password updated successfully!

Reloading privilege tables..

... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

Remove anonymous users? [Y/n] Y         删除默认的匿名用户

... Success!

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y   禁止root管理员远程登陆,建议禁止

... Success!

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

Remove test database and access to it? [Y/n] n    是否删除名为test的测试库

... skipping.

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

Reload privilege tables now? [Y/n] Y                     重载特权表

... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

加固之后,再使用用户名密码登陆

# mysql -uroot -h127.0.0.1 -plhp@ssw0rd

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 10

Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

授权一个普通用户做后面的测试,用户名 myuser  密码mypass

MariaDB [(none)]> GRANT ALL ON testdb.* TO 'myuser'@'192.168.10.%' IDENTIFIED BY 'mypass';

Query OK, 0 rows affected (0.00 sec)

刷新授权表

    MariaDB [(none)]> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

退出sql用新建的用户测试连接

# mysql -umyuser -h192.168.10.30 -pmypass

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 11

Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

创建数据库testdb并指定默认字符集为utf8

MariaDB [(none)]> CREATE DATABASE testdb CHARACTER SET 'utf8';

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> exit 

Bye


(2)安装并配置pmp-fpm服务

确保没有和php同时安装

# yum info php

还在仓库中

# yum info php-fpm

还在仓库中


安装php-fpm和连接数据库的php-mysql和支持多字符的php-mbstring和加解密的php-mcrypt

# yum -y install php-fpm php-mysql php-mbstring php-mcrypt

服务配置文件:/etc/php-fpm.conf , /etc/php-fpm.d/*.conf

/etc/php-fpm.d/www.conf中的关键参数:

listen = 127.0.0.1:9000    监听的主机和端口,跨主机部署需要修改

;listen.backlog = -1  后援队列,等待队列,请求等待,-1表示无限制

listen.allowed_clients = 127.0.0.1 允许哪些主机有权限连接请求,跨主机部署amp时需要修改 

user = apache  运行进程的用户

group = apache   运行进程的组

pm = dynamic    连接池运行为动态

pm.max_children = 50  运行的最大子进程数

pm.start_servers = 5   服务刚启动是运行的子进程个数

pm.min_spare_servers = 5   最少空闲子进程个数

pm.max_spare_servers = 35  最大空闲子进程数

;pm.max_requests = 500    每个子进程响应500个请求后重新起一个子进程

;pm.status_path = /status   内置状态页

;ping.path = /ping    服务远程健康状态测试

;ping.response = pong  服务远程健康状态测试

php_value[session.save_path] = /var/lib/php/session  会话持久保持在这个目录

php环境配置文件:/etc/php.ini, /etc/php.d/*.ini

创建session保存的目录,默认没创建,在/etc/php-fpm.d/www.conf中定义

# mkdir -pv /var/lib/php/session

mkdir: created directory ‘/var/lib/php/session’

设置运行用户apache,组apache,和php-fpm一致

# chown apache:apache /var/lib/php/session/

启动php-fpm服务

# systemctl start php-fpm

# ss -tnl

(3)安装并配置httpd服务

安装启动httpd

# yum -y install httpd

# systemctl start httpd

# systemctl enable httpd

配置一个虚拟主机做测试

# vim /etc/httpd/conf.d/vhosts.conf

<VirtualHost *:80>

        ServerName www.b.net

        DocumentRoot "/apps/vhosts/b.net"

        <Directory "/apps/vhosts/b.net">

                Options None

                AllowOverride None

                Require all granted

        </Directory>

</VirtualHost>

创建虚拟主机对应的网页目录及文件

# mkdir -pv /apps/vhosts/b.net

# touch /apps/vhosts/b.net/index.html

# vim /apps/vhosts/b.net/index.html

<h1>

        test page

</h1>

语法检查

# httpd -t

重启httpd服务及关闭防火墙和SELinux

# systemctl restart httpd

# systemctl stop firewalld

关闭SELinux

# setenforce 0

测试

配置httpd通过fpm访问动态资源

增加/etc/httpd/conf.d/vhost.conf的参数

DirectoryIndex index.php 主页支持index.php

ProxyRequests Off 关闭正向代理

ProxyPassMatch   ^/(.*\.php)$   fcgi://127.0.0.1:9000/apps/vhosts/b.net/$1       正则表达式模式匹配,如果用户请求的URL是以任意字符开头但以.php结尾,那么我们就把他反代到 fcgi://127.0.0.1:9000端口 ,指定动态网页存放路径为/apps/vhosts/b.net/$1,$1为后向引用,引用第一个括号中的内容,在正则表达式外用$引用,在正则表达式中用\引用

进入虚拟主机配置文件目录

# cd /apps/vhosts/b.net/

将原来的静态页面改名保持,创建新的动态资源.php

# mv index.html test.html

# vim index.php

<?php

        phpinfo()

?>

重启服务测试

# systemctl restart httpd


(4)设置能通过phpmyadmin网页管理数据库

使用宿主机下载phpmyadmin图形工具用于图形化管理数据库:由于当前php版本为5.4.16,所以从https://www.phpmyadmin.net/files/找到降低版本phpMyAdmin-4.0.10.20-all-languages.zip,上传至centos7服务器/root目录下。

切换到/root目录对文件进行解压

# cd ~

# unzip phpMyAdmin-4.0.10.20-all-languages.zip

将解压后的文件移动至虚拟主机所在的DocumentRoot路径下的phpmyadmin目录

# mv phpMyAdmin-4.0.10.20-all-languages /apps/vhosts/b.net/phpmyadmin

切换当前目录到/apps/vhosts/b.net/phpmyadmin/目录

# cd /apps/vhosts/b.net/phpmyadmin/

复制其中的文件config.sample.inc.php 命名为config.inc.php 

# cp config.sample.inc.php config.inc.php

编辑配置文件config.inc.php,添加随机数,此版本默认有可以不填,有的版本没有必须填写

# vim config.inc.php 

测试机浏览器打开192.168.10.30/phpmyadmin/index.php即可访问


输入此前设置的数据库root用户名密码即可登陆


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容