当前位置:   article > 正文

Linux搭建lamp(Apache+PHP+Mysql环境)centos7.4版详细教程_centos httpd php7.4 配合

centos httpd php7.4 配合

简介

根据自己的产品对CPU、带宽、内存等硬件配置的要求,选择对应的配置,调试期间我们一般选择1核1G 1M,默认选择40G云盘。这样一个月也就几十块的服务端成本。产品上线后,我们再根据用户导入规模,初期选择了4核8G 10M 的配置。

1、确认centos版本

  1. [root@localhost ~]# cat /etc/redhat-release
  2. CentOS Linux release 7.4 (Core)

2、检查是否安装过apache

  1. rpm -qa | grep httpd
  2. 或者:
  3. apachectl -v
  4. 或者:
  5. httpd -v

3、检查是否安装过Mysql

service mysqld start


5、清理Mysql痕迹如果未被识别则没有安装
如果系统安装过,或者安装失败,清理一下系统

  1. yum remove mysql
  2. rm -f /etc/my.cnf

 

6、卸载Apache包

rpm -qa|grep httpd

注意:如果是新的系统或者你从来没有尝试安装过,则以上步骤省略。

1.安装Apache

安装Apache

  1. 安装
  2. [root@localhost ~]# yum -y install httpd
  3. 开启apache服务
  4. [root@localhost ~]# systemctl start httpd.service
  5. 设置apache开机自启动
  6. [root@localhost ~]# systemctl enable httpd 或者 chkconfig httpd on
  7. Note: Forwarding request to 'systemctl enable httpd.service'.


至此,我们appache也安装完毕,打开浏览器输入你的服务器ip地址就可以看到如下页面

更改apache默认网站目录

当我们在Centos7中配置好Apache时,发现apache默认解析目录是在 /var/www/html,也就是说当访问服务器 IP 或者本地 localhost 时,默认定位到这个目录里的 index.html 或 index.php 文件。
如果不想用这个默认目录,就要我们动手改了:

  • 一、先创建我们想要的目录,我选择在 /home 下建一个 www目录

    1. [root@localhost ~]# cd /home/ --进入home文件夹下
    2. [root@localhost ~]# mkdir www --创建www文件夹

     

  • 二、修改apache配置文件,使定位到/home/www/

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf   -- 用编辑器打开配置文件(没安装vim的同学可以用vi)


然后:找到 DocumentRoot “/var/www/html” 这表示 #apache的根目录,将该目录改成 /home/www 即可。
再找到 <Directory "/var/www/html">这个区域,#定义apache /var/www/html这个区域,把 /var/www/html改成/home/www,这样我们就把apahce的默认路径改掉了。

[root@localhost ~]# systemctl restart httpd.service   --重启apache服务器。


完成以上步骤后,访问主机IP,访问成功。

  • 可能出现的问题

    如果显示,you don’t have permission…..什么的,则是权限问题,因为有些版本的centos在创建文件夹的时候默认权限是750apache作为一个外来的用户,是没有权限访问的,我们需要为其赋予权限:

[root@localhost ~]# chmod -R 755 /home/www

特别的,如果你的项目用的是thinkphp框架,由于apache还要往Runtime文件夹里面添加缓存和日志等内容,单单是 755 权限是不够的。因此要对Runtime这个目录赋予全部权限:至此,你已经成功的将apache默认目录移至/home/www/下了。

[root@localhost ~]# chmod -R 777 /home/www/Runtime


禁用Apache默认页面将你的项目移到该目录下即可。

这一步,也可以不操作,主要是为了apache那个页面

使用find / -name httpd.conf命令查找到具体的路径为/etc/httpd/conf/httpd.conf

进入到apache的目录

[root@localhost ~]# vim /etc/httpd/conf.d/welcome.conf


更改为(注释7-10行)将原文件内容
1

1

重启Apache :

[root@localhost ~]# service httpd restart


修改apache默认页面方法

这一步,也可以不操作,主要是为了apache那个页面

通过查看welcome.conf这个配置文件,可以发现apache默认页面文件为
/usr/share/httpd/noindex/index.html

修改这个文件里面的html,然后重启apache就可以了

  1. [root@localhost ~]# vim /usr/share/httpd/noindex/index.html
  2. [root@localhost ~]# service httpd restart


安装PHP2.安装PHP

1、默认centos7 自带的是php5.4版本,升级php5.7。不升级只有yum 安装

2、我才用的是编译安装

  1. 下载php7
  2. [root@localhost local]# wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.1.tar.gz/from/this/mirror
  3. 解压php7
  4. [root@localhost local]# tar -xvf php7.tar.gz
  5. 重命名php-7.1.1为php
  6. [root@localhost local]# mv php-7.1.1 php
  7. 进入php目录
  8. [root@localhost local]# cd php
  9. 安装依赖包
  10. [root@localhost php]# yum install gcc libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
  11. 编译安装
  12. [root@localhost php]# ./configure --prefix=/usr/local/php \
  13. --with-config-file-path=/usr/local/php/etc \
  14. --enable-inline-optimization --disable-debug \
  15. --disable-rpath --enable-shared --enable-opcache \
  16. --enable-fpm --with-fpm-user=www \
  17. --with-fpm-group=www \
  18. --with-mysql=mysqlnd \
  19. --with-mysqli=mysqlnd \
  20. --with-pdo-mysql=mysqlnd \
  21. --with-gettext \
  22. --enable-mbstring \
  23. --with-iconv \
  24. --with-mcrypt \
  25. --with-mhash \
  26. --with-openssl \
  27. --enable-bcmath \
  28. --enable-soap \
  29. --with-libxml-dir \
  30. --enable-pcntl \
  31. --enable-shmop \
  32. --enable-sysvmsg \
  33. --enable-sysvsem \
  34. --enable-sysvshm \
  35. --enable-sockets \
  36. --with-curl --with-zlib \
  37. --enable-zip \
  38. --with-bz2 \
  39. --with-readline
  40. 正式安装
  41. [root@localhost php]# make && make install
  42. 配置服务-配置文件
  43. php的解压目录复制一下php的配置文件
  44. [root@localhost php]# cp php.ini-development /usr/local/php/php.ini

 

配置PHP-fpm

  1. 配置PHP-fpm
  2. [root@localhost php]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
  3. [root@localhost php]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
  4. [root@localhost php]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  5. [root@localhost php]# chmod +x /etc/init.d/php-fpm
  6. [root@localhost php]# chkconfig --add php-fpm
  7. #设置开机自启
  8. [root@localhost php]# chkconfig php-fpm on
  9. [root@localhost php]# service php-fpm start
  10. ##如果出现错误:ERROR: [pool www] cannot get uid for user 'www-data'
  11. ##则新建www-data 用户组:
  12. [root@localhost php]# groupadd www-data
  13. [root@localhost php]# useradd -g www-data www-data
  14. 重启php-fpm
  15. [root@localhost php]# /etc/init.d/php-fpm restart
  16. ##如果出现错误:ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use
  17. 查看占用9000端口的程序:
  18. [root@localhost php]# netstat -lntup | grep 9000
  19. 停止原先的php-fpm:
  20. [root@localhost php]# killall php-fpm
  21. [root@localhost php]# service php-fpm start

配置环境变量

  1. 配置环境变量
  2. [root@localhost ~]# vim /etc/profile
  3. 在末尾追加 ## 这句话不要加
  4. PATH=$PATH:/usr/local/php
  5. export PATH
  6. [root@localhost ~]# source /etc/profile

 

安装完成后,重启Apache服务器

  1. 安装完成后,重启Apache服务器
  2. [root@localhost ~]# systemctl restart httpd.service

安装PHP 可能出现的错误

centos7 apache无法解析php
使用yum安装完apache、php7、mariadb之后,发现apache可以解析html文件,但是不能解析php文件。
配置apache来使用php-fpm,并写好配置文件,内容如下

  1. <FilesMatch \.php$>
  2. SetHandler "proxy:fcgi://127.0.0.1:9000"
  3. </FilesMatch>

 

保存到/etc/httpd/conf.modules.d/10-php-fpm.conf,然后启动php-fpm,并重启apache,php文件解析成功

3.安装MariaDB

安装MariaDB (MySQL的一个开源分支)

1、检查系统是否已经安装了 mysql mariadb

  1. [root@localhost ~]# rpm -qa | grep -i mysql
  2. [root@localhost ~]# rpm -qa | grep -i mariadb

 

如果有的话,请先卸载

  1. 安装mariadb 数据库
  2. [root@localhost ~]# yum install mariadb mariadb-server

 

这个脚本会经过一些列的交互问答来进行MariaDB的安全设置。

首先提示输入当前的root密码:
Enter current password for root (enter for none):

初始root密码为空,我们直接敲回车进行下一步。
Set root password? [Y/n]

设置root密码,默认选项为Yes,我们直接回车,提示输入密码,在这里设置您的MariaDB的root账户密码。
Remove anonymous users? [Y/n]

是否移除匿名用户,默认选项为Yes,建议按默认设置,回车继续。
Disallow root login remotely? [Y/n]

是否禁止root用户远程登录?如果您只在本机内访问MariaDB,建议按默认设置,回车继续。 如果您还有其他云主机需要使用root账号访问该数据库,则需要选择n。
Remove test database and access to it? [Y/n]

是否删除测试用的数据库和权限? 建议按照默认设置,回车继续。
Reload privilege tables now? [Y/n]

MariaDB安装成功后,需要配置MySQL的root密码,此外,备注一下启动关闭MariaDB的常用命令

  1. systemctl start mariadb //启动MariaDB
  2. systemctl stop mariadb //停止MariaDB
  3. systemctl restart mariadb //重启MariaDB
  4. systemctl enable mariadb //设置开机启动

 

设置root账户密码

  1. [root@localhost ~]# mysql_secure_installation
  2. Enter current password for root (enter for none):
  3. Set root password? [Y/n]
  4. 点击回车然后提示是否设置root账号密码,输入y
  5. New password:
  6. Re-enter new password:
  7. Password updated successfully!

最后如果出现Thanks for using MariaDB! 说明配置成功,输入用户名root和密码进行登录测试

[root@localhost ~]# mysql -uroot -p


Navicat 远程连接linux mariadb 可能出现的问题

解决Navicat 报错:1130-host … is not allowed to connect to this MySql server,MySQL

解决方法:

  1. 改表法。
    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”
  1. [root@localhost ~]# mysql -u root -p
  2. //输入密码
  3. Enter password:
  4. mysql>use mysql;
  5. mysql>update user set host = '%' where user = 'root' and host='localhost';
  6. mysql>select host, user from user;


亲测可用。需要重启MySQL服务。 或 再执行 执行一个语句 mysql>FLUSH RIVILEGES 使修改生效.就可以了

  1. 授权法。
    例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
    GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
    GRANT ALL PRIVILEGES ON . TO ‘myuser’@’192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
    GRANT ALL PRIVILEGES ON dk.* TO ‘myuser’@’192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
    FLUSH PRIVILEGES;

我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES 使修改生效.就可以了
另外一种方法,不过我没有亲自试过的,在csdn.net上找的,可以看一下.
在安装mysql的机器上运行:
1、d:/mysql/bin/>mysql -h localhost -u root //这样应该可以进入MySQL服务器

2、mysql>GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ WITH GRANT OPTION //赋予任何主机访问数据的权限

3、mysql>FLUSH PRIVILEGES //修改生效

4、mysql>EXIT //退出MySQL服务器

这样就可以在其它任何的主机上以root身份登录啦!

4.安装PhpMyadmin

1、首先要去 phpMyAdmin 官网 下载。这里我给大家下链接 http://www.phpmyadmin.net/downloads/ 在页面里你可以看到不同版本的 phpMyAdmin 你可以根据自己的需要进行下载。

22

2、放到到网站的目录下面

[root@localhost ~]# cd /var/www/html

 

 

3、解压phpMyAdmin-4.8.2-all-languages.tar.gz / 命名为phpMyAdmin

  1. [root@localhost html]# tar -xvf phpMyAdmin-4.8.2-all-languages.tar.gz
  2. [root@localhost html]# mv phpMyAdmin-4.8.2-all-languages phpMyAdmin

4、直接访问网址
直接访问网址 http://服务器ip地址/phpmyadmin/index.php
然后进行登陆,可是登陆不了。结果报错了:phpmyadmin mysqli_real_connect(): (HY000/2002): No such file or directory

再次刷新页面就不会出现mysqli_real_connect(): (HY000/2002): No such file or directory的错误提示了

  1. phpmyadmin 上传到网站目录后提示解决phpmyadmin mysqli_real_connect(): (HY000/2002): No such file or directory的错误,解决方法把phpmyadmin目录中的配置文件config.sample.inc.php改成config.inc.php,并把
  2. $cfg['Servers'][$i]['host'] = 'localhost';
  3. #改成
  4. $cfg['Servers'][$i]['host'] = '127.0.0.1';
  5. [root@localhost phpmyadmin]# cp config.sample.inc.php config.inc.php

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号