阿里云ECS CentOs7.3下搭建LAMP环境

方文锋  2019-11-27 00:22:47  1046  首页学习

LAMP安装有顺序:先安装Apache或Mysql,最后安装PHP


1.安装Apache

yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql

设置开机启动apache

systemctl enable httpd.service

启动apache

systemctl start httpd.service

Apache 安装成功,虚拟主机等配置下面再说。



2.安装Mysql

安装之前先删除以前版本,以免安装不成功。

查看mysql的rpm包

rpm -qa | gerp mysql

查到之后就删除

yum remove 文件名(可以一次多个名字,以空格分隔)

例如:yum remove -y   mysql mysql mysql-server mysql-libs compat-mysql51

查看多余文件没删干净

find / -name mysql

删除多余文件

rm -rf 文件名

例如:rm -rf  /etc/my.cnf

开始安装

rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

yum install -y mysql-server

设置开机启动Mysql

systemctl enable mysqld.service

开启服务

systemctl start mysqld.service

查看Mysql5.7默认密码

grep 'temporary password' /var/log/mysqld.log

登陆Mysql,输入用户名root,复制粘贴密码

mysql -uroot -p

[root@localhost html]# grep 'temporary password' /var/log/mysqld.log

2018-05-30T00:56:22.104303Z 1 [Note] A temporary password is generated for root@localhost: 4/jjw=Pq2s>a 标红部分就是初始密码

修改密码

SET PASSWORD = PASSWORD('123456');

查看数据库

show databases;

Mysql配置安装成功。


配置远程连接数据库( 详细配置 )


创建用户

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'a123456!' WITH GRANT OPTION;

(第一个root表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,第二个 a123456! 表示密码)。


命令立即执行生效

flush privileges;


查看用户

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;


配置成功

exit;退出



3、安装PHP


1.删除以前的php版本(跟上面删除mysql的命令是一样的)


先查看

rpm -qa | grep php

再删除

yum remove 文件名


2. 配置yum源


事先确认yum源的链接是不是有效的。

yum install epel-release

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm


3. 确认安装的php版本


yum list --enablerepo=remi --enablerepo=remi-php56 | grep php


4. 安装php5.6


yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-pecl-apcu php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-pdo php-pear php-fpm php-cli php-xml php-bcmath php-process php-gd php-common


php-opcache及php-pecl-apcu会有效的提高php执行速度。


5. 确认php版本

php -v


安装成功


4、重启Apache


systemctl restart httpd.service





/***************************************************************************************/

Centos7.3 安装Mysql5.7并修改初始密码

1、官方安装文档

http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
2、下载 Mysql yum包

http://dev.mysql.com/downloads/repo/yum/


下载到本地再上传到服务器,或者使用wget 直接下载

wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

3、安转软件源

将platform-and-version-specific-package-name 替换为你下载的rpm名

sudo rpm -Uvh platform-and-version-specific-package-name.rpm

例如


rpm -Uvh mysql57-community-release-el7-10.noarch.rpm



4、安装mysql服务端
yum install -y  mysql-community-server

如果网络环境不是很好,执行完命令就可以去泡杯茶
5、启动mysql
service mysqld start
systemctl start mysqld.service
6、检查mysql 的运行状态
service mysqld status
systemctl status mysqld.service
7、修改临时密码
7.1 获取MySQL的临时密码
只有启动过一次mysql才可以查看临时密码
grep 'temporary password' /var/log/mysqld.log



这里的密码是YdsGaxOq>2n!



7.2 登陆并修改密码
mysql -uroot -p
mysql> select @@log_error;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql>
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';

使用默认的密码登陆

用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:

修改密码

如果密码设置太简单出现以下的提示



如何解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements呢? 这里直接提供解决方案文末有详细的说明

必须修改两个全局参数:
首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;
这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。

再修改密码的长度:

mysql>setglobalvalidate_password_length=1;


查看密码的设定最小长度:
mysql> select @@validate_password_length;

再次执行修改密码就可以了:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
参考页面:https://www.cnblogs.com/ivictor/p/5142809.html

创建mysql数据库用户

允许外网 IP 访问[创建test用户,任意主机都可以访问,登录密码为password]

mysql> create user 'test'@'%' identified by 'password';

或者

mysql> insert into mysql.user(Host,User,Password) values ("%","test",password("password"));


允许本地 IP 访问 localhost, 127.0.0.1

mysql> create user 'test'@'localhsot' identified by 'password';

或者

mysql> insert into mysql.user(Host,User,Password) values ("localhsot","test",password("password"));




8、授权其他机器登陆
FLUSH  PRIVILEGES;
9、关于密码设置的详细说明

授权root用户拥有所有的数据库的权限:

mysql> ALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'mypassword'WITHGRANTOPTION;


授权某个数据库用户(这里用test 表示数据库用户)拥有某个数据库(这里用testdb表示数据库名称)的所有权限(授予用户通过外网IP对于该数据库的全部权限):

mysql> grant all privileges on `testdb`.* to 'test'@'%' identified by 'password';


授权test用户拥有所有数据库的某些权限:

mysql> grant select,delete,update,create,drop on *.* to test@"%" identified by "password";

[test用户对所有数据库都有select,delete,update,create,drop 权限]


授权test用户拥有所有数据库的所有权限:

grant all privileges on *.* to 'test'@'%' identified by 'password';



[注释:*.* 意思是所有的数据库中的所有表,点号左边的*是所有的数据库名称,右边的是所有的表。test 是数据库用户,% 是代表任意主机地址(不包括localhost|127.0.0.1) password 是连接密码]


刷新权限:







ERROR 1819 (HY000): Your password does not satisfy the current policy requirements



在虚拟机linux里安装了httpd,即appache,启动后,按正常情况在主机是可以用浏览器通过访问虚拟机linux的ip来访问的。如果出现无法访问的情况,解决办法可以参考如下:

这里我的虚拟机联网方式为物理连接,且ip与主机不同,但在同一网段

1、先确定虚拟机可不可以访问外网,可通过ping www.baidu.com测试,如果不行,先百度或者参考其他资料或setup自行配置好ip相关信息(当然,前提是你主机联网了)

2、主机与虚拟机通过各自ipping ,如果主机可以ping虚拟机,而虚拟机却不可以ping主机,考虑下是不是主机电脑防火墙没有关,很多情况是这个原因,关闭防火墙可以解决。

3、如果以上都没问题,还是没能解决,则可能是iptable的限制。通过如下命令把tcp80端口配置为允许任何ip访问就可以了

命令:

iptables -I INPUT -p TCP --dport 80 -j ACCEPT

注意linux的命令是区分大小写的

但是,上面第三步的方法只是临时生效的,只要你重启了虚拟机或者说重启了linux,就必须重新设置才可以访问,解决办法如下:

在命令行下输入:

vi /etc/selinux/config

1

会打开vi编辑器

修改文件:

SELINUX=enforcing

这一行注释掉,并且加上一行,如下:

#SELINUX=enforcing

SELINUX=disabled

1

2

再保存,后继续输入命令:

root@Fedora6 ~]# chkconfig --level 3  iptables off

[root@Fedora6 ~]# chkconfig --level 5  iptables off

1

2

之后重启linux,生效,就可以了

这时主机就可以访问虚拟机开启的apache了(这里只是用apache示例,应该说可以同主机浏览器访问虚拟机ip了)



阿里云服务器要在安全组那边设置端口号

这样在同一个ip地址下就可以网站就可以用不同的端口号来访问不同的站点。

配置如下:

Listen 81

≷VirtualHost *:81>

DocumentRoot "/var/www/www1"

#    ServerName localhost

#    ErrorLog "logs/dummy-host2.example.com-error_log"

#    CustomLog "logs/dummy-host2.example.com-access_log" common


Options Indexes FollowSymLinks

AllowOverride None

Require all granted


$gl;/VirtualHost>

这样就用81端口好来访问当前目录下(/var/www/www1)的站点文件了

如xx.xx.xx.xx:81来访问站点




/**************/

参考文档:

https://yq.aliyun.com/articles/106387?spm=5176.8091938.0.0.ef15fL

http://www.cnblogs.com/zyw-205520/p/6843092.html

https://yq.aliyun.com/articles/178693?spm=5176.8091938.0.0.CLE36i

http://blog.csdn.net/u014410695/article/details/72779324

https://blog.csdn.net/zymx14/article/details/51440722



阿里云ECS CentOs7.3下搭建LAMP环境【点击查看】