系统:CetOS7.3(CentOS-7-x86_64-DVD-1611)
LAMP:Linux+Apache+MySQL+PHP,是用于搭建web服务器的一种解决方案。虽然从RHEL 7开始Red Hat公司推荐使用MariaDB而不是MySQL,但在我这篇文章当中,我还是决定继续使用MySQL。
yum install httpd
Apache软件的软件包名称叫做httpd,根据红帽官方文档说明,RHEL 7 (或CentOS 7)上可用的Apache版本是2.4版。我安装的便是version 2.4。安装完成后,Apache是以httpd服务的形式存在的。因此,要启动Apache并将其设置为开机启动,就使用命令:
systemctl start httpd.service
systemctl enable httpd.service
然后,检查httpd服务状态:
systemctl status httpd.service
终端出现“enabled”表示httpd服务已设为开机启动,“active(running)”则表示httpd服务正在运行中。
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
终端中出现ports:80/tcp表示成功!
localhost
,显示如下界面:Apache软件的主配置文件为
/etc/h ttpd/conf/httpd.conf
vi /etc/httpd/conf/httpd.conf
我只修改了下面这行,其他的没变,更多的请到在网页http://httpd.apache.org/docs/2.4/en/中查阅到!提醒:修改之前,多备份几个原配置文件!
AddDefaultCharset Off
//AddDefaultCharset会强制客户端浏览器使用指定的字符集编码方式。这可能会有问题,所以要将它关闭。
[root@localhost ~]#apachectl configtest
然后,重启httpd服务:
[root@localhost ~]# systemctl restart httpd
Q:vi如何替换多个字符串?
A::n,$s/my/you/g 替换第 n 行开始到最后一行中每一行所有 my 为 you
yum install php
安装完成后,PHP会生成配置文件/etc/httpd/conf.d/php.conf,因为该配置文件在/etc/httpd/conf.d目录下,所以它会被Apache所读取。PHP还会生成配置文件/etc/httpd/conf.modules.d/10-php.conf,该配置文件也会被Apache所读取,它的设定让Apache可以加载PHP模块。不过,PHP软件本身的配置文件其实是/etc/php.ini。
然后,重启httpd服务:
[root@localhost~]# systemctl restart httpd
vim /var/www/html/phpinfo.php
),内容如下所示:
其中的
是PHP程序的语法,phpinfo ();则是PHP程序提供的一个函式库,该函式库可以显示出你这个web服务器的相关信息。然后,使用浏览器来访问服务器的这个文件,看看页面能不能正常打开。
浏览器输入localhost/phpinfo.php
查资料发现是CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了。
mv ...(下载文件的地方) /root
# 表示将下载包移动到root目录
yum localinstall mysql57-community-release-el7-9.noarch.rpm
# 将MySQL Yum Repository添加到系统的软件库列表(repositorylist)
yum repolist enabled | grep mysql
# 检查添加是否成功
yum install mysql-community-server
# 安装MySQL
安装完成后
systemctl start mysqld
# 启动mysqld服务
systemctl enable mysqld
# 设为开机启动
systemctl status mysqld
# 检查mysqld服务状态
netstat -atulpn | grep mysqld
# 查看mysqld服务侦听端口
MySQL侦听tcp端口3306。但因为防火墙并未放通该端口,所以从其它设备上是无法访问本服务器的MySQL数据库的。但因为这里的MySQL也仅是提供给本机的PHP使用的,所以也就不必放通tcp端口3306。
[root@localhost ~]# mysql -u root -p
Enter password:
mysql> create user'myuser'@'localhost' identified by '1234'; //新建本地用户myuser,密码为1234
mysql> create database mydb; //新建数据库mydb
mysql> grant all privileges on mydb.*to myuser@localhost; //将数据库mydb的所有权限授权给本地用户myuser
mysql> flush privileges; //刷新系统权限表
mysql> use mysql; //进入数据库mysql(该数据库为系统自带)
mysql> select * from user where user ='myuser'; //查询数据库mysql中是否存在用户myuser
mysql> show databases; //显示所有已有的数据库
mysql> exit
Q:在创建本地用户时,ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,怎么解决?
A:默认情况下MySQL 5.7+拥有密码验证系统。如果你不想严格遵守政策,并需要分配自己的,那么只是禁用密码验证和重新启动mysqld进程。
先编辑my.cnf文件
vi /etc/my.cnf
in [mysqld]
validate-password=off
保存文件,并重启mysql
sudo service mysqld restart
orsystemctl restart mysqld
Q:上个问题解决后,继续创建本地用户,遇到错误ERROR 1054 (42S22): Unknown column ‘password_last_changed’ in ‘mysql.user’
A:字段’password_last_changed’在MySQL <5.7的版本中存在, 但是在5.7,给删除了。
所以升级了mysql server之后,你还有运行’mysql_upgrade’ 脚本把tables从老版本中迁移到新版本。
mysql_upgrade -u root -p
然后
systemctl restart mysqld
或者service mysql restart
重启MySQL服务器,问题就解决了。Q:如果您是第一次进行安装并想要知道临时密码,请使用以下方法查找第一次密码
A:
grep 'temporary password' /var/log/mysqld.log
Q:更改root密码
A:
mysql_secure_installation
or/usr/bin/mysql_secure_installation
yum install php-mysql
systemctl restart httpd
Q:测试成功后,查看Apache的错误日志文件,还是发现有报错“mysql_connect():Headers and client library minor version mismatch”,该怎么解决?
A:这样的错误是由于高版本的MySQL,低版本的MySQL Client API引起的,我在CentOS 7上安装MySQL-Server的时候出现了这个错误,解决办法:
卸载PHP-mysqlyum remove php-mysql -y 安装php-mysqlnd yum install php-mysqlnd -y 重启httpd systemctl restart httpd.service
让SELinux规则放行:
[root@www ~]# setsebool -P httpd_can_network_connect=1
然后确认一下修改是否生效:
[root@www ~]# getsebool httpd_can_network_connect####
为了优化LAMP平台,所以还需要进行一些工作。 XCache是一款开源的PHP缓存器/优化器,它通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 使客户端访问时服务器能够直接使用缓冲区已编译的代码从而提高速度,同时降低服务器负载。到我写这篇文章为止,XCache最新的版本为3.2.0。我选择使用官网提供的源码来安装XCache。
源码编译安装需要安装gcc:
yum install gcc
再安装php-devel,它用于让PHP可以支持扩展工具(如XCache):
yum install php-devel
然后,使用XCache官网提供的源码来安装XCache:
然后,使用XCache官网提供的源码来安装XCache:
[root@www ~]# wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
[root@www ~]# tar -zxfxcache-3.2.0.tar.gz
[root@www ~]# cd xcache-3.2.0
[root@www xcache-3.2.0]# phpize --clean
[root@www xcache-3.2.0]# phpize
[root@www xcache-3.2.0]# ./configure--enable-xcache
[root@www xcache-3.2.0]# make
[root@www xcache-3.2.0]# make install
[root@www xcache-3.2.0]# cat xcache.ini>> /etc/php.ini
//千万注意,有两个>号,表示把xcache.ini的配置追加到php.ini后面。如果只有一个>号,会把php.ini原有的配置覆盖掉。
//建议在操作前可以先备份/etc/php.ini文件。
然后,重启httpd服务:
[root@www ~]# systemctl restart httpd
打开phpinfo.php页面页面,搜索xcache,应该可以搜索到关于XCache的相关信息,可以看到XCache是enabled的:
[root@www ~]# vim/var/www/html/account.php
修改/etc/php.ini中的这两个设定的值:
xcache.admin.user ="admin" //双引号内可以填入你想要使用的用户名
xcache.admin.pass ="81dc9bdb52d04dc20036dbd8313ed055" //双引号内填入刚刚得到的那串组合
cp -a /root/xcache-3.2.0/htdocs /var/www/html
chown -R root:root /var/www/html/htdocs
restorecon -Rv/var/www/html/htdocs