Linux搭建lamp(Apache+PHP+Mysql环境)centos7.4版详细教程
标签: Linux搭建lamp
简介
根据自己的产品对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 即可。
再找到 <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在创建文件夹的时候默认权限是
750,apache作为一个外来的用户,是没有权限访问的,我们需要为其赋予权限:
[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行)将原文件内容

重启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,并写好配置文件,内容如下<FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
保存到/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
解决方法:
- 改表法。
可能是你的帐号不允许从远程登陆,只能在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 使修改生效.就可以了
- 授权法。
例如,你想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 你可以根据自己的需要进行下载。

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
智能推荐
CentOS7.4环境下搭建Hadoop2.8.5伪分布集群
这是一篇碰壁2天的难产文章,首先强调一点,本篇文章是针对Hadoop2.x环境的搭建,并不适应于Hadoop3.x(因为我一直用3.x版本试过,一直Error,最后我下了2.8.5版本) 图片有不准的地方,以文字代码啊为主,图片只是演示过程 一、下载合适的Hadoop并解压,安装到linux下 1.官网地址:https://had...
Centos7.4 安装java开发环境(lnmt)Linux + Nginx+ MySQL+ Tomcat
oneinstack官网教程:https://oneinstack.com/install/ 1、centos安装epel源 2、安装基础包 (开始lnmt安装...)3、下载oneinstack包4、解压oneinstall安装包 5、进入oneinstack文件夹 #如果需要修改目录(安装、数据存储、Nginx日志),请修改options.conf文件 6、创建新的会话,清屏7、安装8、安装内...
Linux搭建lamp(Apache+PHP+Mysql环境)centos7.2版详细教程
http://www.511yj.com/linux-lamp-centos.html Skip to content 更多的网站服务器是选择了Linux系统,这里建议你选择centos,这也是阿里云ecs推荐的系统,在服务器上比较推荐centos,特别对于新手,首选CentOS,并不是centos比Debian和ubuntu好,而是centos是初学者安装vps的首选,它既稳定,占用资源又少此版...
Centos7.4(Linux)下搭建个人网站、JDK1.8、Tomcat9、MySQL、FTP
Yum安装MySQL和JDK是在线下载,文件大下得慢,本人懒得等,所有安装文件先下载好再通过FTP传输到服务器 环境版本简介 vi/vim操作介绍 一、登录服务器 二、搭建FTP 三、Linux命令解压文件 四、安装JDK 五、安装tomcat 六、安装MySql 七、开启防火墙并打开相关端口 八、连接数据库,测试Tomcat 九、Tomcat配置域名 参考文章 环境版本简介 Linux各类环境 ...
Linux(Centos7.4和RHEL7.4)环境下基于chrony的NTP服务器的构建
一、操作环境 操作系统:CentOS Linux release 7.4.1708 (Core) 最小化安装版 chrony版本:chrony-3.1-2.x86_64 二、配置过程 由于在CentOS7.4系统中以默认安装chrony,因此无需再执行安装过程。其他未安装chrony的操作系统要执行安装chrony也是极其简单的,以CentOS7以下没有自带chrony的操作系统版本为例,执行yu...
猜你喜欢
Mybatis源码的下载,搭建以及阅读源码的姿势
源码下载 mybatis的源码是在github上开源的,所以直接从github上搜索下载即可。 如上图,第一个就是mybatis3的源码项目,下面几个也是项目中常用的依赖项目,分页插件pagehelper,SSM项目需要引入的依赖mybatis-spring,mybatis-plus项目等。 当前最新版本是v3.5.5,可以选择合适的版本下载。我本地选择的是v3.5.4版本,小版本之间没有太大差异...
spring cloud + redis RedisTemplate Api搭建简单Demo
简介 Redis是一种NoSQL数据库,即非关系型数据库。redis是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,r...
c++在windows、linux下获取指定文件夹下所有文件名的方法
一般来说,获取指定文件夹下的所有文件名,用python是较为方便的,直接: import os files_name = os.listdir(“一个路径”) 但也有c++程序偶尔也有这个需求,下面就直接上c++在windows和linux去读取文件夹下文件名的方法,不同的系统代码上有一些差别 Windows(vs) vs的环境,主要是用到了头文件<io.h>,...
计算机图形学实验一绘制任意斜率的直线段
一、实验目的 (1)掌握任意斜率直线段的重点 Bresenham 扫描转换算法; (2)掌握 Cline 直线类的设计方法; (3)掌握状态栏编程方法。 二、实验步骤 (1)创建MFC应用程序 (2)定义CLine类 添加消息处理的处理程序 三、实验结果 四、实验体会 在本次实验中,通过不断的探索和实践,我学会了如何创建一个MFC应用程序,将理论运用于实践...
CSS盒模型
盒子模型 盒子模型是什么 CSS盒子模型就是在CSS技术所使用的一种思维模型。CSS假定所有的HTML文档元素都生成一个描述该元素在HTML文档布局中所占空间的矩形元素框,可以形象地将其看作是一个盒子。通过定义一系列与盒子相关的属性,可极大地丰富和促进各个盒子乃至整个HTML文档的表现效果和布局结构。CSS盒子模型由内容区、填充、边框和空白边四部分组成。内容区是盒子模型的中心,呈现盒子的主要信息内...
