LAMP环境的搭建
本文主要讲述在 centos 系统上搭建 lamp 环境
Apache
服务器的安装与配置
因为之前已经安装过 yum
了,所以直接在线安装,我的服务器系统是 CentOS 7
主配置文件的目录为: /etc/httpd/conf/httpd.conf
在线安装
先 yum list
看看有没有可安装的包 yum list httpd
有的话就可以以安装 yum install httpd.x86_64
配置端口
默认端口是 80
端口,可以不修改,根据个人情况决定,我将其改为了 8080
端口,配置文件的目录为 etc/httpd/conf/httpd.conf
用 vi httpd.conf
命令打开文件,按下 i
键就可以开始修改,要注意开始的时候展示的并不是文件的全部,需要按几次回车才能看到修改端口的地方,修改完成后按 Esc
键退出编辑状态,输入命令 :wq
回车退出并保存。
设置 httpd
服务开机启动
到 etc/httpd
目录下输入 /sbin/chkconfig httpd on
命令,回车,看到结果:
Note: Forwarding request to 'systemctl enable httpd.service'.
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
启动 httpd
服务
还是在 httpd
这个目录下,输入 /sbin/service httpd start
命令,看到结果为: Redirecting to /bin/systemctl start httpd.service
表示启动了 Apache
服务器,访问 ip
验证一下,如果看到了测试页面说明启动成功。注意:如果你修改了你的监听端口号的话,那么在你访问 ip
地址的时候后面应该加上你的端口号,中间用冒号隔开
我的阿里云的服务器,需要配置安全组规则,允许设置的那个端口被外网访问
systemctl start httpd.service
//启动 systemctl restart httpd.service
//停止 systemctl status httpd.service
//查看状态 systemctl restart httpd.service
//重启 systemctl enable httpd.service
//开机启动
httpd
的卸载
rpm -qa | grep httpd
或者 yum list | grep httpd
先确认是否有安装过,因为我安装过,所以我的显示是这样的:
rpm -qa | grep httpd
httpd-2.4.6-67.el7.centos.6.x86_64
httpd-tools-2.4.6-67.el7.centos.6.x86_64
下面开始卸载 httpd
,首先要停止 httpd
服务, systemctl stop httpd.service
然后通过 rpm -e
或者 yum -erase
命令都可以,不过 rpm -e
命名必须要自己先卸载依赖包,所以我用 yum -erase
命令卸载,命令如下: yum erase httpd.x86_64
MySQL
安装与配置
最好对 MySQL
的命令有一定理解能力,不然光看着教程也不知道是咋回事,就数据库用户名和密码那块不理解就很难办,因为要确保用户名和密码还有数据库名字的一致,如果出现不一致的地方,就会出现数据库连接错误。
首先检测系统是否有自带安装 MySQL
:
rpm -qa | grep mysql
如果你的系统有安装,那可以选择进行卸载 rpm -e mysql
普通删除模式 rpm -e --nodeps mysql
强力删除模式,如果使用上面命令删除时,提示有依赖的其他文件,则用该命令可以对其进行强力删除
安装 MySQL
:
因为在 CentOS 7
版本, 由于 MySQL
数据库已从默认的程序列表中移除,可以使用 mariadb
代替,安装命令为: yum install mariadb-server mariadb
mariadb
数据库的相关命令是:
systemctl start mariadb
#启动MariaDB
systemctl stop mariadb
#停止MariaDB
systemctl restart mariadb
#重启MariaDB
systemctl enable mariadb
#设置开机启动
开机启动成功:
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
验证 MySQL
安装
在成功安装 MySQL
后,一些基础表会表初始化,在服务器启动后,可以通过简单的测绘师来验证 MySQL
是否工作正常。使用 mysqladmin
工具来获取服务器状态,该文件位于 /usr/bin
mysqladmin --version
mysqladmin Ver 9.0 Distrib 5.5.56-MariaDB, for Linux on x86_64
如果命令未输出任何信息,说明你的 MySQL
未安装成功
配置 MySQL
运行 mysql_secure_installation
安全配置向导 它会告诉你由于你是刚安装完所以默认密码是空的,只需要回车即可,然后设置新密码,再次输入新密码 然后问你是否删除匿名用户,生产环境建议删除 Remove anonymous users? [Y/n] y
是否禁止 root
远程登录 Disallow root login remotely? [Y/n] n
是否删除 test
数据库 Remove test database and access to it?[Y/n] y
是够重新加载权限表 Reload privilege tables now? [Y/n] y
配置 mariadb
的字符集
查看 /etc/my.cnf
文件内容,其中包含一句 !includedir/etc/my.cnf.d
,说明在该配置文件中引入了 /etc/my.cnf.d
目录下的配置文件
cd /etc/my.cnf.d
- 使用
vi server.cnf
命令编辑server.cnf
文件,如果/etc/my.cnf.d
目录下无server.cnf
,文件,则直接在/etc/my.cnf
文件的[mysqld]
标签下添加以下内容
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
- 用
vi client.cnf
命令编辑/etc/my.cnf.d/client.cnf
,在[client]
标签下添加default-character-set=utf8
- 用
vi mysql-clients.cnf
命令编辑/etc/my.cnf.d/mysql-clients.cnf
文件, 在[mysql]
标签下添加default-character-set=utf8
配置完成后systemctl restart mariadb
重启服务 - 进入到数据库
mysql -u root -p
输入show variables like "%character%";show variables like "%collation%";
查看字符设置
卸载 MySQL
要注意由于在 CentOS 7
中安装的是 mariadb
。
- 检查
mariadb
是否安装rpm -qa | grep mariadb
输出为:
mariadb-5.5.56-2.el7.x86_64
mariadb-libs-5.5.56-2.el7.x86_64
mariadb-server-5.5.56-2.el7.x86_64
卸载
mariadb
根据httpd
的卸载,我用yum erase
命令卸载yum erase mariadb
卸载
mariadb
依赖 在上一步之后再执行rpm -qa | grep mariadb
结果为:mariadb-libs-5.5.56-2.el7.x86_64
执行:yum erase mariadb-libs
再用命令rpm -qa | grep mariadb
查看,已经没有输出了,卸载完毕
重置 MySQL
密码
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接 MySQL
数据库。 因为在重新设置 MySQL
的 root
密码的期间, MySQL
数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改 MySQL
的信息。可以采用将 MySQL
对 外的端口封闭,并且停止 Apache
以及所有的用户进程的方法实现服务器的准安全 状态。最安全的状态是到服务器的 Console
上面操作,并且拔掉网线。
2.修改 MySQL
的登录设置: # vi /etc/my.cnf
在 [mysqld]
的段中加上一句: skip-grant-tables
保存并且退出。
3.重新启动 mariadb
# systemctl restart mariadb
4.登录并修改 MySQL
的 root
密码
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> USE mysql;
Database changed
mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
5.将 MySQL
的登录设置修改回来 # vi /etc/my.cnf
将刚才在 [mysqld]
的段中加上的 skip-grant-tables
删除 保存并且退出 vi
6.重新启动 mariadb
# systemctl restart mariadb
MySQL
远程连接
允许 root
用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下: 在本机先使用 root
用户登录 mysql
: mysql -u root -p"youpassword"
进行授权操作: mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
重载授权表: FLUSH PRIVILEGES;
退出 mysql
数据库: exit
安装 PHP
安装命令: yum install php
在 Apche
的目录下面新建一文件 test.php
cd /var/www/html
vi test.php
可以键入相关 PHP
代码,以输入 hello world
为例,
<?php
echo "hello world";
?>
访问网站 ip:port/test.php
,如果正常解析,则说明 PHP
环境完成。没有修改端口号就不用加端口号了,修改了端口号的话还要改别的配置,所以我又把端口号改回了 80
,访问可看到网页显示 hello world
安装 WordPress
MySQL
创建用户
MariaDB [(none)]> insert into mysql.user(Host,User,Password)
-> values("localhost","phpphp",password("111111"));
Query OK, 1 row affected, 4 warnings (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
一定要执行 flush privileges;
刷新权限列表后,你新建的用户名和密码才能生效,不然用新建的用户名登录会提示错误
mysql -u phpphp -p
Enter password:
ERROR 1045 (28000): Access denied for user 'phplamp'@'localhost' (using password: YES)
为 WordPress
创建数据库
[root@izwz934uda0vhx21ipksh8z ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
// 创建一个名为 wordpress 的数据库库
MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)
// 将数据库 wordpress 的所有权限授予名字为 username 密码为 password 的用户
MariaDB [(none)]> grant all privileges on wordpress.* to username@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
// 刷新权限列表
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
安装 WordPress
- 在我们下载
WordPress
之前,有一个PHP
模块,我们需要安装,以确保它正常工作。没有此模块,WordPress
将无法调整图像大小以创建缩略图。用yum
来安装sudo yum install php-gd
- 现在我们需要重启
Apache
,以便它识别新的模块:sudo service httpd restart
- 安装
WordPress
cd ~
wget http://wordpress.org/latest.tar.gz
- 这将下载一个压缩的归档文件,其中包含我们所需的所有WordPress文件。 我们可以提取归档文件与重建的
WordPress
目录tar
:tar xzvf latest.tar.gz
- 现在,您将有一个目录名为
wordpress
在你的主目录。 我们可以通过将解压缩的文件传输到Apache
的文档根目录来完成安装,在那里它可以提供给我们网站的访问者。 我们可以有我们的传输文件的WordPress rsync
,这将保存文件的默认权限sudo rsync -avP ~/wordpress/ /var/www/html/
PS
:我直接在/var/www/html/
目录下下下载并解压了,因为第一次文件传输失败了rysnc
将安全的所有的内容从你解压文档根目录的目录复制/var/www/html/
。 但是,我们仍然需要为WordPress
添加一个文件夹来存储上传的文件。 我们可以做到这一点用mkdir
命令:mkdir /var/www/html/wp-content/uploads
- 现在我们需要为我们的
WordPress
文件和文件夹分配正确的所有权和权限。 这将增加安全性,同时仍然允许WordPress
按预期工作。 要做到这一点,我们将使用chown
授予所有权Apache
的用户和组:sudo chown -R apache:apache /var/www/html/*
- 通过此更改
Web
服务器将能够创建和修改WordPress
文件,并且还将允许我们将内容上传到服务器
配置 WordPress
使用 WordPress
所需的大多数配置将通过以后的 Web
界面完成。 但是,我们需要从命令行做一些工作,以确保 WordPress
可以连接到我们为其创建的 MySQL
数据库。
- 首先进入安装
WordPress
的Apache
根目录:cd /var/www/html
- 这
WordPress
的依赖于主配置文件称为wp-config.php
。 默认情况下,包括大多数匹配我们需要的设置的示例配置文件。 我们需要做的是将其复制到默认配置文件位置,以便WordPress
可以识别和使用该文件:cd wordpress
cp wp-config-sample.php wp-config.php
- 现在我们有一个要使用的配置文件,让我们在文本编辑器中打开它:
vi wp-config.php
- 我们需要对此文件进行的唯一修改是保存我们的数据库信息的参数。 我们需要找到段名为
MySQL settings
和更改DB_NAME
,DB_USER
和DB_PASSWORD
为了变量WordPress
的正确连接和认证,我们创建的数据库。 使用您创建的数据库的信息填写这些参数的值。 它应该看起来像这样:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'wordpressuser');
/** MySQL database password */
define('DB_PASSWORD', 'password');
这些是您需要更改的唯一值,因此在完成后保存并关闭文件。
通过 Web
界面完成安装
输入 ip:port/wordpress
将导航到 WordPress
安装页面,剩下的只需要按照要求来即可
遇到的错误
配置完成后输入 url
地址 Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
先是提示 PHP
没有安装 MySQL
扩展,安装扩展: yum install -y php-mysql
service httpd restart
安装完扩展又出现如下错误: Error establishing a database connection
多半是和数据库的连接出了问题,检查你的用户名和密码配置的是否正确,此处需要熟悉一下数据库命令的意思 告诫大家,不懂的地方不要瞎改,不然就要解决到弄懂这个东西,尤其是 WordPress
修改设置也没有个确认按钮,很难受,网站说呲就呲了
参考文档
- (MySQL配置参考)[http://www.jianshu.com/p/25c2711efa23]