LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M指mysql,P指PHP。
Linux:它是直接运行在“裸机”上的最基本和最重要的系统程序。相当于一个双面中介。将应用程序传递来的信号转换为硬件能识别的信号。服务器操作系统一般用Linux。
Nginx:是一个很强大的高性能Web和反向代理服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Mysql:MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。一般中小型网站的开发都选择 MySQL 作为网站数据库。
1.Linux系统安装
-
安装VMware工具:直接在网上搜索VMware安装包即可,我使用的是VMware12。
安装后检查网卡信息
检查服务 -
下载Linux镜像文件
添加虚拟机,选下载好的镜像文件,按照步骤一步一步安装。非常简单~
VMware具有快照和克隆功能。也可以直接导入准备好的虚拟机。我使用的是centos7,需要注意centos7只有ens33网卡,没有eth0。若想改为eth0可按下列步骤:https://www.cnblogs.com/achengmu/p/8979257.html -
查看Linux系统界面
可以正常上网了哈哈(当然想上网也不是这么顺利,我也是经过了很多曲折才顺利连上的。在VMware里的网络编辑器里有三种模式,我使用的是NAT模式,即和主机共享IP地址。如果连不上网就自己百度百度把)~
2.Xshell安装
Xshell可以在windows端远程连接服务器。我安装的是Xshell 6。在用Xshell连接虚拟机前,对虚拟机的网卡进行设置。因为我们一般连接的服务器都是固定的IP地址,所以要设置静态IP。https://www.cnblogs.com/congcongdi/p/10149925.html~这里centos7使用的是ens33网卡。
如图,已经成功连接上了~
3.Nginx的安装
附上安装教程!~https://www.cnblogs.com/taiyonghai/p/6728707.html
安装好后用浏览器访问localhost,成功访问
或者直接下载到物理机上,然后复制粘贴到虚拟机上执行以下命令:
给下载的软件创建专用的目录:
mkdir /data/{server,soft} -p
把复制过来的文件移动到专用目录里:
mv /home/admin/桌面 * /data/soft
接下来是安装~
为了避免使用root,权限较高。故需要一个专用用户,将这个用户创建为www。
useradd www -s /sbin/nologin -M
解压文件~
tar xzf nginx******(刚才的.gz文件)
然后进入到nginx文件里 ,里面的src文件是源码文件,configure是可执行文件。接下来要执行configure
./comfigure --prefix=/data/server/nginx
不加后面的prefix的话会默认将配置文件放到usr/local里
执行之后有可能会发现报错,checking for C compiler … not found是因为缺少环境变量,执行
yum -y install gcc
yum -y install gcc-c++
yum -y install openssl openssl-devel
之后重新执行,然后编译、安装
make //编译
make install //安装
此时,修改一下配置文件里的专用用户
gedit /data/server/nginx/conf/nginx.conf
启动
/data/server/nginx/sbin/nginx //可执行文件在sbin目录下,直接输入绝对路径就可启动,或者直接在sbin目录下输入./nginx也可执行
启动之后就可以成功访问咯~
安装成功~
也可用物理机访问虚拟机IP地址,如果访问不成功,说明物理机和虚拟机之间没有ping通或者关一下虚拟机的防火墙~
启动后检查
netstat -tnulp | grep nginx //检查端口号是否为80
/data/server/nginx/sbin/nginx -s stop //关闭
/data/server/nginx/sbin/nginx -s reload //重启
4.Mysql的安装
安装教程:https://www.jianshu.com/p/276d59cbc529
或者同样按照nginx的方式,直接从物理机上移动到虚拟机
一般在虚拟机上装东西都要经过以下几个步骤:
1.解压 tar : 解压文件,获取真正的配置文件
2.配置configure :根据默认的配置项或更改配置项,生成编译配置文件
3.编译make :根据makefile内容,编译生成指定的软件需要的所有文件
4.安装 make install :将编译生成的所有文件转移到软件指定安装目录下面
这里要强调一点,不知道为什么我的文件从物理机复制到虚拟机只有第一个好使,后面再复制就会出现错误。后来我找了下原因说是要安装VMwaretools,照着教程做了,但还是无法复制粘贴。后来我想直接在linux上下载安装包,但是发现速度真是太太太慢了,于是放弃。后来发现了一种方法,就是建立共享文件夹的方式。在物理机上创建一个共享文件夹,将你想拷贝的文件放里面,同时,虚拟机里也就有了。这种方式也非常简单~现在,我已经成功的把nginx,mysql以及php的安装包放进linux里了。
接下来是mysql的安装~因为mysql的安装不是以源码的方式,所以不能按照nginx的安装方法。
useradd -s /sbin/nologin -M mysql //创建专用用户
tar xzf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz -C /data/server/ //解压,此时存放在/data/server中
考虑到目录名比较长,创建一个软连接,相当于快捷方式
ln -s mysql-5.6.35-linux-glibc2.5-x86_64 mysql
初始化mysql数据库
/data/server/mysql/scripts/mysql_install_db --basedir=/data/server/mysql --datadir=/data/server/mysql/data/ --user=mysql
数据库配置文件管理
mv /etc/my.cnf /etc/my.cnf-bak //重命名
cp /data/server/mysql/support-files/my-default.cnf /etc/my.cnf
数据库启动命令配置
cp /data/server/mysql/support-files/mysql.server /etc/init.d/mysqld
修改启动文件
sed -i 's#/usr/local/mysql#/data/server/mysql#g' /data/server/mysql/bin/mysqld_safe /etc/init.d/mysqld
数据库文件权限设置
chown -R mysql.mysql /data/server/mysql/
将mysql设置为开机自启动服务
chkconfig --add mysqld
chkconfig mysqld on
mysql启动服务
service mysqld start
检查数据库启动状态 mysql的端口号应该是3306
netstat -tnulp|grep mysqld
启动成功~
Mysql登录,两种方式(可执行文件一般在bin目录里)
./mysql -uroot //在文件目录下登录
/data/server/mysql/bin/mysql -uroot //绝对路径方式登录
show databases; //展示数据库,退出用exit
过于繁琐。思考,为什么ls等命令可以直接用?那么就需要设置环境变量。设置步骤如下:
gedit /etc/profile
打开之后,修改,在最后一行加上
PATH=/data/server/mysql/bin:$PATH
保存,此时再执行mysql -uroot 就可以直接打开。是不是方便多了!
几条命令
service mysqld start //启动数据库
service mysqld stop //停止数据库
service mysqld restart //重启数据库
nestat -tnulp | grep mysqld //检查数据库启动状态 端口号是3306
接下来安装PHP
和nginx一样,都是基于源码的安装。.tar.gz文件已经放入共享文件夹中了~
首先需要安装依赖软件:libiconv
此时,我已经将libiconv.tar.gz文件通过共享文件夹的方式存入linux中
cd /data/soft
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
有可能安装失败,提示‘gets未声明’,解决方法https://blog.jinchuang.org/1700.html
接下来,正式安装php
解压
cd /data/soft/
tar xzf php-5.3.29.tar.gz
cd php-5.3.29
配置。好长好长~
ln -s /data/server/mysql/lib/libmysqlclient.so.18 /usr/lib64
touch ext/phar/phar.phar //建立一个空文件
./configure \
--prefix=/data/server/php-5.3.29 \
--with-mysql=/data/server/mysql \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-shirt-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp
make \\编译
make install \\安装
在make时有可能出现问题configure: error: xml2-config not found. Please check your&nb。。解决方案https://blog.csdn.net/yuanyuan_186/article/details/51306430?utm_source=blogxgwz9
接下来再make应该就没问题了~make时间比较长,耐心等待。
PHP文件配置
cd /data/server
ln -s php-5.3.29 php //创建一个软连接
cp /data/soft/php-5.3.29/php.ini-production /data/server/php/lib/php.ini
gedit /data/server/php/lib/php.ini
找到;session.save_path="/tmp
改为 session.save_path="/tmp //打开session会话
复制php-fpm配置文件,默认没有该文件但有一个备份文件
cp /data/server/php/etc/php-fpm.conf.default /data/server/php/etc/php-fpm.conf
PHP的简单操作
/data/sever/php/sbin/php-fpm //启动
netstat-tnulp|grep php //检查端口,端口号是9000
pkill php-fpm //杀死
此上,环境已经搭建好了,就缺源代码了。此时用netstat检查一下端口号看是否正常。
nginx整合PHP
php在运行代码时只能通过9000访问,且只能在局域网里。nginx整合php的目的就是以后可以直接通过nginx访问php代码。
修改nginx配置文件
cp /data/server/nginx/conf/nginx.conf /data/server/nginx/conf/nginx.conf-bak
gedit /data/server/nginx/conf/nginx.conf
把server内容替换为下面内容
server {
listen 80;
server_name localhost;
#静态请求处理的location
location /{
root html;
index index.php index.html index.htm;
}
#动态请求处理的location
location ~* .*\.(php|php5)?$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
检查并重启nginx服务
/data/server/nginx/sbin/nginx -t //验证配置文件是否正确
/data/server/nginx/sbin/nginx -s reload //重启
再用netstat 检查一下。然后就可以在nginx中写代码了
代码存放在 /nginx/html
编写php简单程序
echo “<?php echo '<p>Hello World </p>';?>" > /data/server/nginx/html/test.php
浏览器输入localhost/test.php 查看效果,同时,其他电脑也可以访问。
这样,一个LNMP环境就搭建好了。