CentOS Linux中配置PHP


PHP是当今使用最多的Web语言之一。在CentOS上安装 LAMP 堆栈是每个系统管理员需要执行的事情,很可能早于晚些时候。

传统的LAMP堆栈由(L)inux(A)pache(M)ySQL(P)HP组成。

CentOS上的 LAMP 堆栈有三个主要组件-

  • 网络服务器
  • Web开发平台/语言
  • 数据库服务器

- 术语 LAMP Stack 还可以包含以下技术:PostgreSQL,MariaDB,Perl,Python,Ruby,NGINX Webserver。

在本教程中,我们将坚持传统的CentOS GNU Linux的 LAMP 堆栈:Apache Web服务器,MySQL数据库服务器和PHP。

我们实际上会使用MariaDB。MySQL配置文件,数据库和表对MariaDB是透明的。MariaDB现在包含在标准CentOS存储库中,而不是MySQL。这是由于许可和开放源代码合规性的限制,因为甲骨文已经接管了MySQL的开发。

我们需要做的第一件事就是安装Apache。

[root@CentOS]# yum install httpd
Loaded plugins: fastestmirror, langpacks
base
| 3.6 kB  00:00:00
extras
| 3.4 kB  00:00:00
updates
| 3.4 kB  00:00:00
extras/7/x86_64/primary_d
| 121 kB  00:00:00
Loading mirror speeds from cached hostfile
* base: mirror.sigmanet.com
* extras: linux.mirrors.es.net
* updates: mirror.eboundhost.com
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-45.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-45.el7.centos for package:
httpd-2.4.6-45.el7.centos.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.645.el7.centos.x86_64
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.4.6-45.el7.centos will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution
Installed:
httpd.x86_64 0:2.4.6-45.el7.centos

Dependency Installed:
httpd-tools.x86_64 0:2.4.6-45.el7.centos
mailcap.noarch 0:2.1.41-2.el7

Complete!
[root@CentOS]#

让我们配置 httpd 服务。

[root@CentOS]# systemctl start httpd && systemctl enable httpd

现在,让我们确保Web服务器可以通过firewalld访问。

bash-3.2# nmap -sS -p 1-1024 -T 5  -sV 10.211.55.1
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-28 02:00 MST
Nmap scan report for centos.shared (10.211.55.1)
Host is up (0.00054s latency).
Not shown: 1022 filtered ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 6.6.1 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.6 ((CentOS))

Service detection performed. Please report any incorrect results at
https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.82 seconds bash-3.2#

正如您可以通过nmap服务探测器看到的,Apache webserver正在监听CentOS主机上的请求并对其进行响应。

安装MySQL数据库服务器

[root@CentOS rdc]# yum install mariadb-server.x86_64 && yum install mariadb-
devel.x86_64 && mariadb.x86_64 && mariadb-libs.x86_64

我们正在为MariaDB安装以下存储库软件包 -

MariaDB的-server.x86_64

主要的MariaDB服务器守护程序包。

MariaDB的-devel.x86_64

需要使用MySQL / MariaDB兼容性从源代码编译文件。

mariadb.x86_64

用于从命令行管理MariaDB服务器的MariaDB客户端实用程序。

MariaDB的-libs.x86_64

MariaDB的通用库可以用于MySQL / MariaDB支持编译的其他应用程序。

现在,让我们开始并启用MariaDB服务。

[root@CentOS]# systemctl start mariadb
[root@CentOS]# systemctl enable  mariadb

- 与Apache不同,我们不会通过基于主机的防火墙(firewalld)启用与MariaDB的连接。 在使用数据库服务器时,除非特别需要远程套接字访问,否则认为只允许本地套接字连接是最好的安全措施。

让我们确保MariaDB服务器正在接受连接。

[root@CentOS#] netstat -lnt
Active Internet connections (only servers)
Proto     Recv-Q     Send-Q     Local Address        Foreign Address      State       
tcp            0          0     0.0.0.0:3306         0.0.0.0:*            LISTEN      
tcp            0          0     0.0.0.0:111          0.0.0.0:*            LISTEN      
tcp            0          0     192.168.122.1:53     0.0.0.0:*            LISTEN      
tcp            0          0     0.0.0.0:22           0.0.0.0:*            LISTEN      
tcp            0          0     127.0.0.1:631        0.0.0.0:*            LISTEN      
tcp            0          0     127.0.0.1:25         0.0.0.0:*            LISTEN

[root@CentOS rdc]#

正如我们所看到的,MariaDB正在侦听端口3306 tcp。我们将离开我们的基于主机的防火墙(firewalld)阻止传入连接到端口3306。

安装和配置PHP

[root@CentOS#]  yum install php.x86_64 && php-common.x86_64 && php-mysql.x86_64
&& php-mysqlnd.x86_64 && php-pdo.x86_64 && php-soap.x86_64 && php-xml.x86_64

我建议安装以下的PHP软件包以提高通用兼容性 -

  • PHP-common.x86_64
  • PHP-mysql.x86_64
  • PHP-mysqlnd.x86_64
  • PHP-pdo.x86_64
  • PHP-soap.x86_64
  • PHP-xml.x86_64
[root@CentOS]# yum install -y php-common.x86_64 php-mysql.x86_64 php-
mysqlnd.x86_64 php-pdo.x86_64 php-soap.x86_64 php-xml.x86_64

这是我们简单的php文件,位于/ var / www / html /

[root@CentOS]# cat /var/www/html/index.php  
<html>
   <head>
      <title>PHP Test Page</title>
   </head>

   <body>
      PHP Install
      <?php
         echo "We are now running PHP on GNU Centos Linux!<br />"
      ?>
   </body>
</html>

[root@CentOS]#

让我们将页面的拥有组更改为我们的http守护程序正在运行的系统用户。

[root@CentOS]# chgrp httpd /var/www/html/index.php && chmod g+rx /var/www/html/index.php
---

当通过ncat手动请求时。

bash-3.2# ncat 10.211.55.1 80
   GET / index.php
   HTTP/1.1 200 OK
   Date: Sat, 28 Jan 2017 12:06:02 GMT
   Server: Apache/2.4.6 (CentOS) PHP/5.4.16
   X-Powered-By: PHP/5.4.16
   Content-Length: 137
   Connection: close
   Content-Type: text/html; charset=UTF-8

<html>
   <head>
      <title>PHP Test Page</title>
   </head>

   <body>
      PHP Install
      We are now running PHP on GNU Centos Linux!<br />
   </body>
</html>

bash-3.2#

PHP和LAMP是非常流行的Web编程技术。LAMP的安装和配置肯定会作为CentOS管理员出现在您的需求列表中。易于使用CentOS软件包从源代码中编译Apache,MySQL和PHP需要做大量的工作。