最近博客换了个服务器,补充一篇简单的服务器配置文章,本文针对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个想法