LAMP服务器安装(PHP7 & CentOs7.2)

最近博客换了个服务器,补充一篇简单的服务器配置文章,本文针对centos7.2,安装了最新的php7。

1、安装 apache 和 mariadb

yum install httpd -y
yum install mariadb mariadb-server -y

2、安装 PHP7

国内很多yum源都没有php7的内容,所以如果安装php7的话最好添加国外的源

#来自 webtatic 的源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

然后安装php7

yum install php70w php70w-opcache php70w-mysql php70w-pdo php70w-xml php70w-mbstring php70w-mcrypt php70w-gd -y

3、端口配置

centos7默认只开启了22端口,这个只能供远端链接使用,正常我们服务器还需要http端口(80),https端口(443),mysql端口(3306),如果有其他服务酌情参考操作

关闭防火墙

systemctl stop firewalld
systemctl mask firewalld

安装并配置iptable

yum install iptables-services
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 443 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save

启动iptable

systemctl enable iptables
systemctl enable ip6tables
systemctl start iptables
systemctl start ip6tables

查看开启的端口

netstat -ntlp

此时可能还只能看见22,这很正常,因为apache、mysql、ssl都还没有工作

如果要使用wordpress之类的自动安装更新和插件功能,还需要vsftpd,它使用21端口,所以顺便将其安装配置加在下面

# intall vsftpd
yum install vsftpd
# open port 21
/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT
service iptables save
systemctl restart iptables
# start vsftpd
systemctl enable vsftpd
systemctl start vsftpd

4、配置apache和mariadb

首先是apache

systemctl enable httpd.service
systemctl start httpd.service

尝试在浏览器中输入IP地址,如果能显示apache欢迎页则表明Apache正常工作

之后时mariadb

systemctl enable mariadb.service
systemctl start mariadb
mysql_secure_installation

首先会要求重置密码,原密码为空

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 authorization.

New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
 ... Success!

剩下的几个设置提示就一律yes就可以了

最后测试一下php

vi /var/www/html/info.php

添加如下代码

<?php phpinfo(); ?>

现在前往http://your_server_IP_address/info.php查看到php信息即表明安装成功

5、安装与配置ssl

这个问题之前有篇文章提到过了,这里重复一遍

yum install mod_ssl openssl

# Generate private key 
openssl genrsa -out ca.key 2048 

# Generate CSR 
openssl req -new -key ca.key -out ca.csr

此时会要求输入几项信息,按照真实信息填写就好,之后将证书签名请求csr内容复制后提交给证书供应商,供应商就会将证书发回,我使用wosign提供了两个证书文件分别为1_root_bundle.crt和2_stringblog.com.crt这两个证书之后都要用到,还需要保留之前的私钥key文件

将这三个文件复制到/etc/pki/tls/certs/目录下,以便之后的设置

其余关于ssl的相关配置问题可以参见我的另一篇文章

6、多域名配置

在apache的设置文件夹中(/etc/httpd/conf.d/)添加新的文件命名vhost.conf

<VirtualHost *:80>
 DocumentRoot /var/www/wordpress
 ServerName stringblog.com
 ServerAlias wordpress
 ErrorLog "/var/log/httpd/wordpress-error.log"
 CustomLog "/var/log/httpd/wordpress.log" common
</VirtualHost>

<VirtualHost *:443>
 DocumentRoot "/var/www/wordpress/"
 ServerName stringblog.com
 ServerAlias wordpress
 ErrorLog "/var/log/httpd/wordpress-error.log"
 TransferLog "/var/log/httpd/access_wordpress_log"
 CustomLog "/var/log/httpd/wordpress.log" \
 "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
 SSLEngine on
 SSLProtocol all -SSLv2
 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
 SSLCertificateFile "/etc/pki/tls/certs/2_stringblog.com.crt"
 SSLCertificateKeyFile "/etc/pki/tls/certs/stringblog.key"
 SSLCertificateChainFile "/etc/pki/tls/certs/1_root_bundle.crt"
</VirtualHost>

这样就完成了http和https的域名配置,对于其他域名参照修改就好

之后在域名注册商处设置A地址解析并重启apache

service httpd restart

输入域名即可以看到网站了,当然dns服务器更新需要时间,实际上需要一段时间才能实现域名解析


本篇主要是总结,没有什么干货,但是适合作为重新配置服务器的参考

以上

参考:

[1] How To Install Linux, Apache, MySQL, PHP (LAMP) stack On CentOS 7, Mitchell Anicas, Jul 21, 2014

[2] CentOS 7 下 yum 安装 Apache / MariaDB / php7, 小蒋, Feb 23, 2016

[3] 面向初学者的vsftpd安装指南, 北南南北, Aug 26, 2010

[4] Setting up an SSL secured Webserver with CentOS, ChristophGaluschka, Feb 15, 2014

[5] 为WordPress配置SSL(Apache+Linux),  浩 Hao, Apr 16, 2016

 

关于“LAMP服务器安装(PHP7 & CentOs7.2)”我的2个想法

  1. Pingback: Bankroft | genji

发表评论