17713433920 info@mac163.com

本教程展示了如何在具有PHP支持(mod_php)和MySQL支持的CentOS 7服务器上安装Apache Web服务器。LAMP是Linux,Apache,MySQL,PHP的缩写。
这个更新的教程展示了在CentOS 7.3上安装最新的PHP版本(7.0和7.1)。
1初步说明
在本教程中,我使用IP地址为192.168.1.100的主机名server1.example.com。这些设置可能会有所不同,所以您必须在适当的位置更换它们。
我将在这里添加EPEL回购安装最新的phpMyAdmin如下:

rpm --import / etc / pki / rpm-gpg / RPM-GPG-KEY *
yum -y install epel-release

为了在shell上编辑文件,我将安装nano编辑器。如果你喜欢用vi编辑文件,那么跳过这一步。

yum -y install nano

2安装MySQL / MariaDB

MariaDB是原始MySQL开发者Monty Widenius的MySQL分支。MariaDB与MySQL兼容,我选择在这里使用MariaDB而不是MySQL。运行这个命令,用yum安装MariaDB:

yum -y install mariadb-server mariadb

然后,我们为MySQL创建系统启动链接(以便MySQL在系统引导时自动启动)并启动MySQL服务器:

systemctl start mariadb.service
systemctl enable mariadb.service

为MySQL根帐户设置密码:

mysql_secure_installation
[ root @ server1〜]#mysql_secure_installation
/ usr / bin / mysql_secure_installation:第379行:find_mysql_client:找不到命令

注意:对于所有MariaDB
服务器,建议运行此脚本的所有部分。请仔细阅读每一步!

为了登录到MariaDB来保护它,我们需要
root用户的当前密码。如果您刚刚安装了MariaDB,并且
尚未设置root密码,则密码将为空,
所以您只需在此处按Enter即可。

为root输入当前密码(enter for none):< - ENTER
 确定,成功使用密码,继续...

设置root密码确保没有人能够登录到MariaDB
 root用户没有适当的授权。

设置root密码?[Y / n]
 新密码:< - yourmariadbpassword
 重新输入新密码:< - yourmariadbpassword
 密码更新成功!
 重新加载特权表..
 ...成功!

默认情况下,MariaDB安装具有匿名用户,允许任何人
 登录MariaDB,而不必为
 他们创建用户帐户。这仅用于测试,并使安装
 变得更顺畅。在进入
 生产环境之前,您应该删除它们。

删除匿名用户?[Y / n] < - ENTER
 ...成功!

通常情况下,root只能被允许从'localhost'连接。这
 确保了某人不能从网络猜测根密码。

禁止远程root登录?[Y / n] < - ENTER
 ...成功!

默认情况下,MariaDB带有一个任何人都可以
 访问的名为“test”的数据库。这也仅用于测试,
 在进入生产环境之前应该删除。

删除测试数据库并访问它?[Y / n] < - ENTER
 - 删除测试数据库...
 ...成功!
 - 删除测试数据库的权限...
 ...成功!

重新加载特权表将确保到目前为止所做的所有更改
 将立即生效。

现在重新加载优惠表?[Y / n] < - ENTER
 ...成功!

清理...

全部完成!如果您已经完成了上述所有步骤,那么您的MariaDB
 安装现在应该是安全的。

感谢您使用MariaDB!
 [ root @ server1〜]#

3安装Apache
CentOS 7附带apache 2.4。Apache可以直接作为CentOS 7包使用,因此我们可以像这样安装它:

yum -y install httpd

这里是安装过程的截图。

centos-apache-install

现在配置您的系统在启动时启动Apache …

systemctl start httpd.service
systemctl enable httpd.service

为了能够从外部访问Web服务器,我们必须打开防火墙中的HTTP(80)和HTTPS(443)端口。CentOS上的默认防火墙是firewalld,可以使用firewalld-cmd命令进行配置。

首先安装firewall

yum -y install firewalld firewall-config
systemctl start firewalld.service
systemctl enable firewalld.service

配置防火墙

firewall-cmd --permanent --zone = public --add-service = http
firewall-cmd --permanent --zone = public --add-service = https
firewall-cmd --reload

另外,如果对新的firewall配置不熟悉,或者想要使用原来的iptables也是可以的,利用一下命令便可以继续使用iptables service

systemctl stop firewalld
systemctl disable firewalld

iptables-service

touch /etc/sysconfig/iptables
systemctl start iptables
systemctl enable iptables

touch /etc/sysconfig/ip6tables
systemctl start ip6tables
systemctl enable ip6table

现在把你的浏览器定位到你的服务器的IP地址,在我的情况下是 http://192.168.1.100,你应该看到Apache的占位符页面:

centos-apache-default-page

4安装PHP


CentOS附带的PHP版本是相当老的(PHP 5.4),因此我将在这一步中向您展示一些选项,用于从Remi存储库安装PHP 7.0或7.1等较新的PHP版本。
添加Remi CentOS存储库。

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

安装yum-utils,因为我们需要yum-config-manager工具。

yum -y install yum-utils

并运行yum更新

yum update

现在,您必须选择要在服务器上使用的PHP版本。如果你喜欢使用PHP 5.4,那么继续下一个命令。要安装PHP 7.0,请按照第4.1章和PHP 7.1中的命令,改为使用第4.2章。
要安装PHP 5.4,请运行以下命令:

yum -y install php

4.1安装PHP 7.0(可选)

我们可以按如下方式安装PHP 7.0和Apache PHP 7.0模块:

yum-config-manager --enable remi-php70

yum -y install php php-opcache

4.2安装PHP 7.1(可选)

如果您想要使用PHP 7.1,请使用:

yum-config-manager --enable remi-php71

yum -y install php php-opcache

在这个例子和下载的虚拟机中,我将使用PHP 7.1。
我们必须重新启动Apache才能应用更改:

 systemctl restart httpd.service

5测试PHP /获取有关您的PHP安装的详细信息
默认网站的文档根目录是/ var / www / html。我们将在该目录中创建一个小的PHP文件(info.php),并在浏览器中调用它来测试PHP安装。该文件将显示大量关于我们的PHP安装的有用的细节,例如安装的PHP版本。

nano /var/www/html/info.php
<?php 
phpinfo(); 
?>

现在我们在浏览器中调用该文件(例如http://192.168.1.100/info.php):

php-7-on-centos

正如你所看到的,PHP 7.1正在工作,它正在通过Apache 2.0处理程序工作,如服务器API行所示。如果向下滚动,则会看到所有已经在PHP中启用的模块。MySQL没有在那里列出,这意味着我们在PHP中没有MySQL支持。

6在PHP中获得MySQL支持

为了在PHP中获得MySQL支持,我们可以安装php71w-mysql包。安装一些其他PHP模块是一个好主意,以及您可能需要它们为您的应用程序。你可以像这样搜索可用的PHP5模块:

yum search php

选择你需要的,并像这样安装它们:

yum -y install php-mysql

在下一步中,我将安装CMS系统所需的一些常见PHP模块,如Wordpress,Joomla和Drupal:

yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel

现在重新启动Apache Web服务器:

systemctl restart httpd.service

现在在您的浏览器中重新加载http://192.168.1.100/info.php,并再次向下滚动到模块部分。现在你应该找到很多新的模块,如卷曲等:

centos-php-7-mysql

如果您不再需要php信息输出,则出于安全原因删除该文件。

rm/var/ www/ html/info.php

7 phpMyAdmin的安装
phpMyAdmin是一个Web界面,通过它你可以管理你的MySQL数据库。
phpMyAdmin现在可以安装如下:

yum -y install phpMyAdmin

现在我们配置phpMyAdmin。我们改变了Apache配置,这样phpMyAdmin不仅允许从本地主机连接(通过注释掉节并添加’Require all granted’行):

nano /etc/httpd/conf.d/phpMyAdmin.conf
[...]
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

AddDefaultCharset UTF-8

# Apache 2.4
#
# Require ip 127.0.0.1
# Require ip ::1
#
Require all granted


# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1

Options none
AllowOverride Limit
Require all granted

[...]

接下来,我们将phpMyAdmin中的身份验证从cookie更改为http:

 nano /etc/phpMyAdmin/config.inc.php
[...]
$cfg['Servers'][$i]['auth_type']     = 'http';    // Authentication method (config, http or cookie based)?
[...]

重新启动Apache:

 systemctl restart httpd.service

之后,您可以访问http://192.168.1.100/phpmyadmin/下的phpMyAdmin :

phpmyadmin-on-centos-7

配置篇

一、Apache配置

vi /etc/httpd/conf/httpd.conf #编辑文件

ServerSignature On #添加,在错误页中显示Apache的版本,Off为不显示

Options Indexes FollowSymLinks #修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行CGI及SSI,禁止列出目录)

#AddHandler cgi-script .cgi #修改为:AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)

AllowOverride None  #修改为:AllowOverride All (允许.htaccess)

AddDefaultCharset UTF-8 #修改为:AddDefaultCharset GB2312 (添加GB2312为默认编码)

#Options Indexes FollowSymLinks #修改为 Options FollowSymLinks(不在浏览器上显示树状目录结构)

DirectoryIndex index.html #修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php(设置默认首页文件,增加index.php)

MaxKeepAliveRequests 500 #添加MaxKeepAliveRequests 500 (增加同时连接数)

:wq! #保存退出

systemctl restart httpd.service #重启apache

rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除默认测试页

二、php配置

vi /etc/php.ini #编辑

date.timezone = PRC #把前面的分号去掉,改为date.timezone = PRC

disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

expose_php = Off #禁止显示php版本的信息

short_open_tag = ON #支持php短标签

open_basedir = .:/tmp/ #设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题(例如:织梦内容管理系统),可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/

:wq! #保存退出

systemctl restart mariadb.service #重启MariaDB

systemctl restart httpd.service #重启apache

配置篇

一、Apache配置

vi /etc/httpd/conf/httpd.conf #编辑文件

ServerSignature On #添加,在错误页中显示Apache的版本,Off为不显示

Options Indexes FollowSymLinks #修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行CGI及SSI,禁止列出目录)

#AddHandler cgi-script .cgi #修改为:AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)

AllowOverride None  #修改为:AllowOverride All (允许.htaccess)

AddDefaultCharset UTF-8 #修改为:AddDefaultCharset GB2312 (添加GB2312为默认编码)

#Options Indexes FollowSymLinks #修改为 Options FollowSymLinks(不在浏览器上显示树状目录结构)

DirectoryIndex index.html #修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php(设置默认首页文件,增加index.php)

MaxKeepAliveRequests 500 #添加MaxKeepAliveRequests 500 (增加同时连接数)

:wq! #保存退出

systemctl restart httpd.service #重启apache

rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除默认测试页

二、php配置

vi /etc/php.ini #编辑

date.timezone = PRC #把前面的分号去掉,改为date.timezone = PRC

disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

expose_php = Off #禁止显示php版本的信息

short_open_tag = ON #支持php短标签

open_basedir = .:/tmp/ #设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题(例如:织梦内容管理系统),可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/

:wq! #保存退出

systemctl restart mariadb.service #重启MariaDB

systemctl restart httpd.service #重启apache

微信二维码

微信扫描二维码联系我们!
我们在微信上24小时期待你的声音
提供外贸路由器设备产品,轻松翻墙,解答:WP主题推荐,WP网站建设,Google SEO,百度SEO,专业服务器环境搭建等!


需要提供WordPress主题/插件的汉化服务可以随时联系我们!另外成品WordPress网站以及半成品WordPress网站建设,海外Google SEO优化托管服务,百度SEO优化托管服务,Centos/Debian服务器WP专用环境搭建,WP缓存服务器搭建,我们都是你的首选,拥有多年WP开源程序服务经验,我们一直在坚持客户体验,没有最好,只有更好!
回到顶部