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

简介

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

1、确认centos版本

[root@localhost ~]# cat /etc/redhat-release

CentOS Linux release 7.4 (Core)

2、检查是否安装过apache

rpm -qa | grep httpd
或者:
apachectl -v
或者:
httpd -v

3、检查是否安装过Mysql

service mysqld start


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

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

 

6、卸载Apache包

rpm -qa|grep httpd

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

1.安装Apache

安装Apache

安装
[root@localhost ~]# yum -y install httpd

开启apache服务
[root@localhost ~]# systemctl start httpd.service

设置apache开机自启动
[root@localhost ~]# systemctl enable httpd 或者 chkconfig httpd on
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目录

    [root@localhost ~]# cd /home/   --进入home文件夹下
    [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 即可。
再找到 这个区域,#定义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行)将原文件内容
Linux搭建lamp(Apache+PHP+Mysql环境)centos7.4版详细教程_第1张图片

Linux搭建lamp(Apache+PHP+Mysql环境)centos7.4版详细教程_第2张图片

重启Apache :

[root@localhost ~]# service httpd restart


修改apache默认页面方法

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

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

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

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


安装PHP2.安装PHP

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

2、我才用的是编译安装

下载php7
[root@localhost local]# wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.1.tar.gz/from/this/mirror

解压php7
[root@localhost local]# tar -xvf php7.tar.gz

重命名php-7.1.1为php
[root@localhost local]# mv php-7.1.1 php

进入php目录
[root@localhost local]# cd php

安装依赖包
[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

编译安装
[root@localhost php]# ./configure --prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--with-readline

正式安装
[root@localhost php]# make && make install

配置服务-配置文件
php的解压目录复制一下php的配置文件
[root@localhost php]# cp php.ini-development /usr/local/php/php.ini

 

配置PHP-fpm

配置PHP-fpm
[root@localhost php]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@localhost php]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[root@localhost php]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php]# chmod +x /etc/init.d/php-fpm
[root@localhost php]# chkconfig --add php-fpm

#设置开机自启
[root@localhost php]# chkconfig php-fpm on
[root@localhost php]# service php-fpm start

##如果出现错误:ERROR: [pool www] cannot get uid for user 'www-data'
##则新建www-data 用户组:
[root@localhost php]# groupadd www-data
[root@localhost php]# useradd -g www-data www-data

重启php-fpm
[root@localhost php]# /etc/init.d/php-fpm restart

##如果出现错误:ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use
查看占用9000端口的程序:
[root@localhost php]# netstat -lntup | grep 9000

停止原先的php-fpm:
[root@localhost php]# killall php-fpm
[root@localhost php]# service php-fpm start

配置环境变量

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

 

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

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

安装PHP 可能出现的错误

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


         SetHandler "proxy:fcgi://127.0.0.1:9000"

 

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

3.安装MariaDB

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

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

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

 

如果有的话,请先卸载

安装mariadb 数据库
[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的常用命令

systemctl start mariadb     //启动MariaDB
systemctl stop mariadb      //停止MariaDB
systemctl restart mariadb   //重启MariaDB
systemctl enable mariadb    //设置开机启动

 

设置root账户密码

[root@localhost ~]# mysql_secure_installation

Enter current password for root (enter for none):
Set root password? [Y/n]

点击回车然后提示是否设置root账号密码,输入y

New password:
Re-enter new password:
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”改称”%”
[root@localhost ~]# mysql -u root -p
//输入密码
Enter password:		
mysql>use mysql;
mysql>update user set host = '%' where user = 'root'  and host='localhost';
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 你可以根据自己的需要进行下载。

Linux搭建lamp(Apache+PHP+Mysql环境)centos7.4版详细教程_第3张图片

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

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

 

 

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

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

[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的错误提示了

phpmyadmin 上传到网站目录后提示解决phpmyadmin mysqli_real_connect(): (HY000/2002): No such file or directory的错误,解决方法把phpmyadmin目录中的配置文件config.sample.inc.php改成config.inc.php,并把

  $cfg['Servers'][$i]['host'] = 'localhost';
  #改成
  $cfg['Servers'][$i]['host'] = '127.0.0.1';

[root@localhost phpmyadmin]# cp config.sample.inc.php config.inc.php

 

你可能感兴趣的:(服务器)