LAMP/LNMP环境搭建
LAMP分别代表Linux、Apache、MySQL、PHP。
LNMP分别代表Linux、Nginx、MuSQL、PHP。
编译安装:Linux安装软件时的重要方式之一。
将下载的软件源代码进行编译,然后安装。
- 编译前的准备工作:
./configure
- 编译:
make
- 安装:
make install
源安装:比如在CentOS
中的yum
。
安装Linux
在这里我们使用virtualbox
这个虚拟机来安装Linux
。
设置网卡
在终端使用打开配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
按下 回车后会出现以下界面:
注意:
- 上面的
ONBOOT
选项修改成yes
。 - 设置
IP
为静态的:如下
配置完成后重启启动服务:
sudo systemclt reatart network.service
然后我们来验证我们的IP
是否设置成功:
ip addr
看到上面标红的区域,跟我们设置的IPADDR
一样了,说明我们的IP
配置成功了。
现在我们就可以使用远程的机器来登录这台电脑了,不过在这之前得让防火墙运行远程的电脑登录。
开启防火墙
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
提示success
就说明已经打开成功。但这仍然不够,还需要重启防火墙:
sudo systemclt restart firewalld.service
安装PHP
使用wget
安装php(若没有安装wget
,使用sudo yum install wget
安装):
1. 下载php
我们可以在php
的官网找到php的下载路径,然后使用wget
命令下载php
:
wget http://hk1.php.net/get/php-7.1.3.tar.gz/from/this/mirror
2. 解压下载好的mirror
使用tar
命令来解压我们的mirror
tar -zxvf mirror
3. 安装gcc
、gcc++
、libxml2-devel
sudo yum install gcc gcc++ libxml2-devel
4. 配置./configure
我们需要进入php
的解压目录,并进行配置:
cd php-7.1.3
./confgure --prefix=/usr/local/php7 --enable--fpm
5. 编译
使用make
命令进行编译:
make
6. 安装php
编译完成后,我么使用make install
来进行安装:
sudo make install
7. 测试安装是否成功
现在我们安装完成了,但是我们的测试是否安装成功:
进入自己的home目录:
cd ~
新建一个test.php
<?php
phpinfo()
运行/usr/local/php7/bin/php test.php
如果运行成功了,会返回php的配置信息。
这样php
就已经安装完成了。
安装mysql
使用rpm
安装mysql 5.7.*
1. 配置yum
源
在MySQL
官网下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/
选择指定的版本后,点击Download
,复制下载的路径
然后在终端执行:
wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
2. 使用yum
安装mysql源
sudo yum localinstall mysql57-community-release-el7-9.noarch.rpm
检查mysql源
是否安装成功:
yum repolist enabled | grep "mysql.*-community.*"
运行上面的命令之后,会出现以下的结果:
[openoter@localhost ~]$ yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community 30
mysql-tools-community/x86_64 MySQL Tools Community 43
mysql57-community/x86_64 MySQL 5.7 Community Server 166
出现类似上面的内容,说明mysql
已经安装成功。
3. 安装mysql
sudo yum install mysql-community-server
4. 启动mysql
systemctl start mysqld
查看mysql的启动状态
systemctl status mysqld
运行完成后,会出现以下的内容:
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 六 2017-03-25 16:51:46 CST; 13s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 2885 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 2811 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 2888 (mysqld)
CGroup: /system.slice/mysqld.service
└─2888 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
如果结果包含Active: active (running)
,说明mysql
启动成功了。
5. 开机启动
sudo systemctl enable mysqld
sudo systemctl daemon-reload
6. 修改root
默认密码
mysql安装完成之后,在/var/log/mysqld.log
文件中给root生成了一个默认密码。通过下面的方式找到root
默认密码,然后登录mysql
进行修改:
grep 'temporary password' /var/log/mysqld.log
运行完上面的代码,会出现以下的结果:
2017-03-25T08:51:37.548507Z 1 [Note] A temporary password is generated for root@localhost: g+r*gXri_5up
结果中的g+r*gXri_5up
就是mysql的临时密码:
登录mysql,修改密码
mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
注意:mysql5.7默认安装了密码安全检查插件(validate_password
),默认密码检查策略要求密码必须包含:
- 大小写字母、数字和特殊符号
- 且长度不能少于8位
否则会报以下错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
密码策略
我们可以通过以下命令来查看密码策略相关的信息:
show variables like '%password%';
上面的代码会出现以下的结果:
+---------------------------------------+--------+
| Variable_name | Value |
+---------------------------------------+--------+
| default_password_lifetime | 0 |
| disconnect_on_expired_password | ON |
| log_builtin_as_identified_by_password | OFF |
| mysql_native_password_proxy_users | OFF |
| old_passwords | 0 |
| report_password | |
| sha256_password_proxy_users | OFF |
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+---------------------------------------+--------+
-
validate_password_policy
: 密码策略,默认为MEDIUM策略 -
validate_password_dictionary_file
: 密码策略文件,策略为STRONG
才需要 -
validate_password_length
:密码最少长度 -
validate_password_mixed_case_count
: 大小写字符长度,至少1个 -
validate_password_number_count
:数字至少1个 -
validate_password_special_char_count
:特殊字符至少1个
这就是默认的策略MEDIUM策略
的密码检查规则。
关于密码策略请查看mysql官网:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy
修改密码策略
在/etc/my.cnf
文件添加validate_password_policy
配置,指定密码策略。
# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
validate_password_policy=0
如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:
validate_password = off
重新启动mysql服务使配置生效:
systemctl restart mysqld
就这样,我们的mysql
就已经安装完成了。
7. 添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'openoter'@'%' IDENTIFIED BY '12345' WITH GRANT OPTION;
安装apache
1. 下载apche
首先我们来到apache
的官网找到http
下载的下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/
我们在命令行中使用wget
下载:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.25.tar.gz
2. 解压httpd-2.4.25.tar.gz
压缩包
tar -zxvf httpd-2.4.25.tar.gz
解压完成后,在目录下面后多出httpd-2.4.25
目录,使用cd
命令进入里面。
3. 安装依赖包pcre
、apr
、apr-util
在http://apr.apache.org/download.cgi分别找到apr
、apr-util
的下载地址。
在http://www.pcre.org/
找到pcre
的源代码路径。
然后解压安装:
下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.gz
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz
解压
tar -zxvf apr-1.5.2.tar.gz
tar -zxvf apr-util-1.5.4.tar.gz
tar -zxvf pcre-8.40.tar.gz
使用mv
命名重名名
mv apr-1.5.2 apr
mv apr-util-1.5.4.tar.gz apr-util
将apr
、apr-util
剪切到httpd-2.4.25
目录
mv apr par-util httpd-2.4.25/srclib
这样apr
见处理完成了。
安装pcre
进入到pcre-8.40
目录,并进行./configure
cd pcre-8.40
./configure --prefix=/usr/local/pcre
编译并安装:
make
sudo make install
4. 安装apche
进入httpd-2.4.25
并进行安装。
配置
cd httpd-2.4.25
./configure --prefix=/usr/local/apache2 -with-pcre=/usr/local/pcre-8.40/bin/pcre-config -with-include-apr
编译并安装
make
sudo make instal
这样apache就安装好了。
5. 启动apche
进入apche的安装目录,并启动apche
。
cd /usr/local/apche2/bin
sudo acpchectl -k start
现在在浏览器中输入ip
地址是不能访问我们配置的,因为我们没有允许防火墙进行访问80
端口。
6. 开启防火墙
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo systemctl restart firewalld.service
现在我们去浏览器访问就可以访问了。(通过ip地址)
安装nginx
1. 下载nginx
我们打开nginx.org
,找到下载的nginx
链接:http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.10.3.tar.gz
2. 解压
tar -zxvf nginx-1.10.3.tar.gz
4. 配置并安装
进入nginx-1.10.3
目录
cd nginx-1.10.3
./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.4
make
make install
这样nginx
就安装成功了。
5. 启动nginx
我们进入到nginx
的安装目录:
cd /usr/local/nginx/sbin
终止httpd的进程
# 查看http的启动情况,获取进程的id
ps aux | grep httpd
sudo kill -9 18728 18729
启动nginx
sudo ./nginx
这样我们的nginx
就启动了,然后我们在浏览器中输入你的ip地址来进行访问,如果能够出现nginx
的欢迎界面,则拜师nginx
已经启动成功了。
6. 配置nginx
启动php-fpm
配置nginx
之前,我们需要启动php
中的php-fpm
。
cd /usr/local/php7/etc
# 重命名
sudo mv php-fpm.conf.default php-fpm.conf
cd php-fpm.d
sudo mv www.conf.default www.conf
# 进入/usr/local/php7/sbin,启动php-fpm
cd /usr/local/php7/sbin
sudo ./php-fpm
配置nginx
我们打开配置文件:
cd /usr/local/nginx
sudo vim conf/nginx.conf
打开localtion ~ \.php
的配置注释,并进行一些修改。
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include fastcgi.conf;
}
然后启动nginx
:
cd sbin
sudo ./nginx
然后我就可以在浏览器中输入ip地址后访问php文件了。