centos上安装lnmp环境

首先简单介绍一下linux的两种安装方法,yum以及编译安装。yum是一个软件包管理器,使用yum指令安装,系统会自动下载软件包并安装,并且还能自动处理依赖,安装依赖包,优点是方便简单,缺点是管理器的软件包往往不是最新版的,甚至可能比较老旧。

而编译安装则需要自己找相关软件的代码源,下载的软件都是没有编译的代码,所以需要自己编译成可执行文件,所以叫做编译安装,它的优点是软件源自己寻找,可以是最新的,也可以是旧的,比较灵活,缺点是操作步骤多,安装繁琐,新手失败率大。

虽然yum安装的软件版本比较低,但我们可以通过配置第三方yum源的方式来安装较新版本的软件,下面我就整理介绍一下通过这种方式安装成功的步骤。

参考了下面教程

http://www.cnblogs.com/toughlife/p/5479271.html
http://www.cnblogs.com/xiaoit/p/3991037.html
http://www.2cto.com/os/201702/597890.html

准备工作

首先你需要一台装好centos系统的虚拟机或服务器,本机测试环境是CentOS Linux release 7.3.1611


1、配置第三方yum源

先看一下默认yum安装的php版本,会发现版本比较低

# yum list php
php.x86_64 5.4.16-42.el7 base

安装centos7的源(注意不是6.5,源要与系统大版本号对应,否则会出错)

# yum install epel-release
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

接下来使用扩展源搜索php的版本,我们发现能搜索到更高版本的软件源了

# yum list --enablerepo=remi --enablerepo=remi-php56 php
php.x86_64 5.6.30-1.el7.remi remi-php56

# yum list --enablerepo=remi --enablerepo=remi-php70 php
php.x86_64 7.0.17-1.el7.remi remi-php70

关于yum第三方源网上有很多资源,我们可以自行选择,以上是php的源,mysql的源网上也有,这里就不介绍了,道理都是一样的

2、安装php

使用扩展源yum安装php及一堆扩展,这里选择5.6版本的

# yum install --enablerepo=remi --enablerepo=remi-php56 php php-fpm php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof

使用下面两个指令,任选其一,查看是否安装成功,如果正确显示版本号或路径信息,则表示安装成功了

# php --version
# which php

顺便启动一下php-fpm,再设置一下这个服务的开机启动

# /bin/systemctl start php-fpm.service
# chkconfig php-fpm on

3、安装nginx

由于没有设置过nginx的yum源,默认安装就好

#yum install nginx

查看是否安装成功,成功显示版本号信息表示安装成功,或者在浏览器输入'localhost',看是否出现如下页面

# which nginx
/usr/sbin/nginx

# /usr/sbin/nginx -v
nginx version: nginx/1.10.2

启动nginx服务,并设置开机启动

# /bin/systemctl start nginx.service
# chkconfig nginx on

4、配置nginx支持php

nginx默认是不支持php脚本编译的,所以需要先配置

将配置文件改为备份文件

# mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak

将默认的配置文件作为配置文件

# cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf

进入nginx配置文件进行修改

# vi /etc/nginx/nginx.conf

找到80端口的配置,加入index.php
index index.php index.html index.htm;

加入下面的配置代码,如果已经存在的,去掉注释,并修改,其中/usr/share/nginx/html是web根目录的地址,可以根据自己的喜好进行选择,我一般放在/var/www下

location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; }

最后,编辑文件php.ini,在文件末尾添加cgi.fix_pathinfo = 1,已经存在的去掉注释就好了

# vi /etc/php.ini

重启nginx和php-fpm服务

# /bin/systemctl restart nginx.service
# /bin/systemctl restart php-fpm.service

然后新建一个php文件,写一个测试代码,最常见的就是输出phpinfo();

# vi /usr/share/nginx/html/test.php

在浏览器输入'localhost/test.php',如果如下图所示,表示配置成功


5、安装MySQL

同样,MySQL使用原生的yum安装,安装MySQL以及它的服务

# yum install mysql mysql-server mysql-devel

在安装过程中我们会发现没有可用软件包 mysql-server。这个提示,因为centos7默认的数据库不是MySQL,而是Mariadb。

Mariadb是MySQL的一个分支,但完全兼容MySQL,它对应的服务是Mariadb—server,其使用方法和MySQL几乎一致,实际上你执行‘yum install mysql’安装的就是Mariadb,如果不习惯还是想使用MySQL服务也是可以的,只要按下面步骤下载包安装即可。

# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-server

值得注意的是安装mysql服务的时候,会安装一些依赖,原来的Mariadb将会被MySQL替代掉,最后,开启服务,如果没有报错表示安装成功,同时设置开机启动

# /bin/systemctl start mysqld.service
# chkconfig mysqld on

如果还想进一步验证,可以使用sql指令验证,输入‘mysql’指令就可以进入sql指令命令窗口

# mysql

6、总结

至此,lnmp的环境就算搭建好了,以上仅供参考,遇到问题多搜索,多探索,总会解决的。


扩展

1、安装phpmyadmin

去PHPmyadmin官网下载安装包到本地,然后使用ssh上传到centos上,上传后我的安装包目录是,/usr/local/src/phpMyAdmin.zip

然后解压安装

# unzip /usr/local/src/phpMyAdmin.zip

移动到web访问目录并重命名(注意解压安装之后的文件夹不是‘phpMyAdmin’,而是类似于‘phpMyAdmin-4.7.0-all-languages’这样的,我的默认安装之后是在‘home’文件夹下)

# mv phpMyAdmin-4.7.0-all-languages /usr/share/nginx/html/phpmyadmin

然后在浏览器访问‘localhost/phpmyadmin’,如下图所示就表示安装成功了

有些人可能会遇到 403 不能访问的错误,可以看一下是否关闭了selinux或者phpmyadmin文件夹设置了不能访问的权限

2、配置nginx支持thinkphp

在原有的配置文件nginx.conf下修改php解析的代码,修改下面注释的三个地方
location ~ \.php { #去掉$ root /var/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; #增加这一句 fastcgi_param PATH_INFO $fastcgi_path_info; #增加这一句 fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; }

3、配置nginx隐藏thinkphp路径中的index.php

在原有的配置文件nginx.conf下修改代码,添加注释的这一段代码,其中user、tool是你项目文件夹的名称,含有public的是thinkphp5的默认路径
location / { root /var/www; index index.php index.html index.htm; if (!-e $request_filename) { #隐藏index.php rewrite ^/user/public/(.*)$ /user/public/index.php/$1 last; rewrite ^/tool/(.*)$ /tool/index.php/$1 last; } #隐藏index.php }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容