CentOS7下LAMP环境的搭建

之前在茶猫云买了一个Ubuntu的服务器,好不容易把博客搭建起来,然后发现腾讯云有个99块一年服务器的活动,感觉还挺香,就买了一台,结果去控制台一看CentOS的,想着正好练练手,就没重装其他系统,毕竟一般都是用CentOS做服务器。

yum配置

先更新一下yum源。

  1. 清除yum缓存

    yum clean all
  2. 生成yum缓存

    yum makecache

配置防火墙

在搭建环境过程中,发现腾讯云的服务器默认是关闭防火墙的,所以在正式搭建环境先要先开启防火墙,然后对其进行配置后再完成后续的搭建工作。

  1. 查看防火墙的当前状态

    systemctl status firewalld

    可以看到防火墙当前状态是关闭的Active: inactive (dead)

    [root@VM-0-5-centos ~]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
         Docs: man:firewalld(1)
    You have new mail in /var/spool/mail/root
  2. 开启防火墙

    systemctl start firewalld
  3. 再次查看状态

    systemctl status firewalld

    服务已经开启了

    [root@VM-0-5-centos ~]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: active (running) since Sun 2021-01-17 15:15:22 CST; 2min 42s ago
         Docs: man:firewalld(1)
     Main PID: 19732 (firewalld)
       CGroup: /system.slice/firewalld.service
               └─19732 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
    
    Jan 17 15:15:21 VM-0-5-centos systemd[1]: Starting firewalld - dynamic firewall daemon...
    Jan 17 15:15:22 VM-0-5-centos systemd[1]: Started firewalld - dynamic firewall daemon.
    Jan 17 15:15:22 VM-0-5-centos firewalld[19732]: WARNING: AllowZoneDrifting is enabled. This i...w.
    Hint: Some lines were ellipsized, use -l to show in full.
  4. 其他用的比较多的命令

    • 关闭防火墙

      systemctl stop firewalld
    • 重启防火墙

      firewall-cmd --reload
    • 开启某个端口(例80端口)

      firewall-cmd --permanent --zone=public --add-port=80/tcp --permanent
    • 查看某个端口是否开启(例80端口)

      firewall-cmd --permanent --query-port=80/tcp
  1. 注意在改变防火墙的规则,比如说开启某个端口后要重启防火墙才会生效。
  2. 安装好某一个服务后发现外部网络无法访问,如果防火墙开着一定要把这个服务的端口号在防火墙上开启。

安装Apache

  1. 安装Apache

    yum install httpd httpd-devel
  2. 启动Apache服务

    systemctl start httpd
  3. 设置Apache开机自启

    systemctl enable httpd
  4. 查看服务状态

    systemctl status httpd

    返回结果,可以看到 Active: active (running)

    [root@VM-0-5-centos ~]# systemctl status httpd
    ● httpd.service - The Apache HTTP Server
       Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
       Active: active (running) since Sun 2021-01-17 09:44:53 CST; 5h 15min ago
         Docs: man:httpd(8)
               man:apachectl(8)
     Main PID: 4592 (httpd)
       Status: "Total requests: 48; Current requests/sec: 0; Current traffic:   0 B/sec"
       CGroup: /system.slice/httpd.service
               ├─4592 /usr/sbin/httpd -DFOREGROUND
               ├─4593 /usr/sbin/httpd -DFOREGROUND
               ├─4594 /usr/sbin/httpd -DFOREGROUND
               ├─4595 /usr/sbin/httpd -DFOREGROUND
               ├─4596 /usr/sbin/httpd -DFOREGROUND
               ├─4597 /usr/sbin/httpd -DFOREGROUND
               └─5307 /usr/sbin/httpd -DFOREGROUND
    
    Jan 17 09:44:53 VM-0-5-centos systemd[1]: Starting The Apache HTTP Server...
    Jan 17 09:44:53 VM-0-5-centos httpd[4592]: AH00558: httpd: Could not reliably determine the ...age
    Jan 17 09:44:53 VM-0-5-centos systemd[1]: Started The Apache HTTP Server.
    Hint: Some lines were ellipsized, use -l to show in full.
  5. 防火墙设置开启80端口并重启防火墙(如果用https协议请打开443端口)

    firewall-cmd --permanent --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload
  6. 确认端口开启并被监听

    netstat -tulp

    可以看到80端口已经被监听

    [root@VM-0-5-centos ~]# netstat -tulp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      1417/sshd           
    tcp        0      0 VM-0-5-centos:smtp      0.0.0.0:*               LISTEN      1358/master         
    tcp6       0      0 [::]:http               [::]:*                  LISTEN      4592/httpd          
    tcp6       0      0 VM-0-5-centos:smtp      [::]:*                  LISTEN      1358/master         
    udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                           835/dhclient        
    udp        0      0 VM-0-5-centos:ntp       0.0.0.0:*                           2449/ntpd           
    udp        0      0 VM-0-5-centos:ntp       0.0.0.0:*                           2449/ntpd           
    udp6       0      0 VM-0-5-centos:ntp       [::]:*                              2449/ntpd           
    udp6       0      0 VM-0-5-centos:ntp       [::]:*                              2449/ntpd
  7. 浏览器输入地址查看效果

安装MySQL

在CentOS7下安装MySQL可以说是一个大坑,因为CentOS7已经将原先的MySQL数据库从默认的程序列表中删除,进而用MariaDB代替了,MariaDB是MySQL的一个分支,完全兼容MySQL,可以直接安装,而且使用和MySQL几乎一模一样,但是显示的是MySQL,当然如果觉得很别扭可以直接去官网下载MySQL-server的包进行MySQL的安装。
这里只介绍用第一种方法安装MariaDB

  1. 安装MariaDB

    yum install mariadb 
    yum install mariadb-server 
    yum install mariadb-libs 
    yum install mariadb-devel
  2. 检查几个包是否安装正确

    rpm -qa |grep maria

    可以看到几个已经安装好的MariaDB相关的包

    [root@VM-0-5-centos ~]# rpm -qa |grep maria
    mariadb-5.5.68-1.el7.x86_64
    mariadb-server-5.5.68-1.el7.x86_64
    mariadb-libs-5.5.68-1.el7.x86_64
    mariadb-devel-5.5.68-1.el7.x86_64
  3. 开启MySQL

    systemctl start  mariadb

    一点要把服务开起来在进行其他操作!

  4. 为MySQL服务设置开机自启

    systemctl enable  mariadb
  5. 检查MySQL状态

    systemctl status mariadb

    可以看到服务已经开始开启

    [root@VM-0-5-centos ~]# systemctl status mariadb
    ● mariadb.service - MariaDB database server
       Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
       Active: active (running) since Tue 2021-01-19 18:27:59 CST; 19h ago
     Main PID: 12892 (mysqld_safe)
       CGroup: /system.slice/mariadb.service
               ├─12892 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
               └─13058 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/us...
    
    Jan 19 18:27:57 VM-0-5-centos mariadb-prepare-db-dir[12808]: MySQL manual for more instructions.
    Jan 19 18:27:57 VM-0-5-centos mariadb-prepare-db-dir[12808]: Please report any problems at htt...a
    Jan 19 18:27:57 VM-0-5-centos mariadb-prepare-db-dir[12808]: The latest information about Mari....
    Jan 19 18:27:57 VM-0-5-centos mariadb-prepare-db-dir[12808]: You can find additional informati...:
    Jan 19 18:27:57 VM-0-5-centos mariadb-prepare-db-dir[12808]: http://dev.mysql.com
    Jan 19 18:27:57 VM-0-5-centos mariadb-prepare-db-dir[12808]: Consider joining MariaDB's strong...:
    Jan 19 18:27:57 VM-0-5-centos mariadb-prepare-db-dir[12808]: https://mariadb.org/get-involved/
    Jan 19 18:27:57 VM-0-5-centos mysqld_safe[12892]: 210119 18:27:57 mysqld_safe Logging to '/va...'.
    Jan 19 18:27:57 VM-0-5-centos mysqld_safe[12892]: 210119 18:27:57 mysqld_safe Starting mysqld...ql
    Jan 19 18:27:59 VM-0-5-centos systemd[1]: Started MariaDB database server.
    Hint: Some lines were ellipsized, use -l to show in full.
  6. 为MySQL设置密码
    在控制台输入

    mysql_secure_installation

    注意刚开始的密码为空,所以在Enter current password for root (enter for none):询问让你输入当前密码的时候直接回车就好了,后面在New password:Re-enter new password:输入密码的时候把密码输入进去,然后其余的全部输入Y

  7. MySQL登录测试

    mysql -uroot -p
  8. 在防火墙开启MySQL的端口
    注意这一步很重要,如果只是在MySQL里将root用户设置为可远程登录,而防火墙未开启3306端口,那么在进行远程连接的时候就会报一个10060的错误,如果说防火墙开着,一定要完成这一步,当时折腾了好久才发现这个问题。

    firewall-cmd --permanent --zone=public --add-port=3306/tcp --permanent
    firewall-cmd --reload
  9. 开启MySQL的远程登录
    如果要进行远程数据库操作,在完成上一步之后,还要将MySQL用户开启可以远程登录的权限,首先在本地登录到MySQL的控制台,然后在MySQL控制台输入下命令完成开启远程登录权限。

    use mysql;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'imhowie.com' WITH GRANT OPTION;

    注意以上其中*.*代表所有资源所有权限,'root'@%其中root代表账户名,%代表所有的访问地址,也可以使用一个唯一的地址进行替换,只有一个地址能够访问。如果是某个网段的可以使用地址与%结合的方式,如10.0.42.%IDENTIFIED BY 'imhowie.com',这个imhowie.com是指访问密码。WITH GRANT OPTION表示允许级联授权。
    然后上述操作完成还要刷新一下访问权限表

    FLUSH PRIVILEGES;

    查看一下用户表看是否设置权限成功

    SELECT User, Password, Host FROM user;
    MariaDB [mysql]> SELECT User, Password, Host FROM user;
    +------+-------------------------------------------+-----------+
    | User | Password                                  | Host      |
    +------+-------------------------------------------+-----------+
    | root | *1B187151874AA15367EDAA726286A5998CA69FB8 | localhost |
    | root | *1B187151874AA15367EDAA726286A5998CA69FB8 | 127.0.0.1 |
    | root | *1B187151874AA15367EDAA726286A5998CA69FB8 | ::1       |
    | root | *1B187151874AA15367EDAA726286A5998CA69FB8 | %         |
    +------+-------------------------------------------+-----------+
  10. 验证远程登录
    可以用Navicat for mysql等远程连接工具连接一下,或者在安装有mysql客户端的机器上使用mysql -u root -p -h 49.111.11.11命令来连接测试一下看远程是否已经打开
    至此MySQL的安装与配置全部完成。

安装PHP环境

  1. 安装PHP

    yum -y install php

    注意我在安装的时候默认安装的是PHP 5.4.16,如果需要安装其他版本需要自行切换版本,安装完成后可以使用PHP -v来查看当前的版本。

  2. 查看安装的配置文件

    rpm -ql php
    [root@VM-0-5-centos ~]# rpm -ql php
    /etc/httpd/conf.d/php.conf
    /etc/httpd/conf.modules.d/10-php.conf
    /usr/lib64/httpd/modules/libphp5.so
    /usr/share/httpd/icons/php.gif
    /var/lib/php/session
  3. 安装MySQL和PHP关联包

    yum install php-mysql
     rpm -ql php-mysql
  4. 安装其他的PHP常用模块

    yum install -y php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath
  5. 重启Apache服务器

    systemctl restart http
  6. 测试PHP
    首先切换到/var/www/html下,然后创建一个php程序,在浏览器查看其效果,如果没有问题就会正常显示程序结果。

PHP搭建完成之后整个LAMP环境就已经搭建完成,之后就可以将网站程序传到/var/www/html下,完成网站的搭建。文件的上传这里就不在详述,XShell自带了一个上传的功能,能以拖拽文件服务器,此外也可以使用ftp服务来上传文件。

最后编辑:2021年02月27日 ©著作权归作者所有

评论已关闭