-
在本机直接搭建PHP开发环境,安装各种插件,不具备模拟真实服务器环境,不如在Vmware上搭建centos7的LNMP。这样,模拟环境很真实,而且容易移植和复用。
-
安装PHP主环境的方法:
方法一:宝塔面板 https://www.bt.cn/
方法二:一键lnmp https://lnmp.org/install.html ,这个需要再次安装自定义扩展,如vsftp、memcached。
-
以下已一键LNMP为例:
1. VM安装centos7时要设置root用户
1.5 centos7安装wget:yum install wget
2. centos7查看IP:ip addr
3. 在终端或者iterm2命令行软件连接centos7,利用ssh
ssh@ip
然后输入pwd即可
4. 一件安装lamp环境
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp
根据提示安装不同软件的版本即可。
特别注意安装Mysql时会让你设置密码,不要跳过。。
5. centos7中安装FTP服务:
0)完整base过程如下(参考https://www.linuxidc.com/Linux/2017-11/148518.htm):
[root@localhost ~]# yum install -y vsftpd
Failed to set locale, defaulting to C
??????fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
????????
--> ??????
---> ??? vsftpd.x86_64.0.3.0.2-22.el7 ?? ??
--> ????????
??????
============================================================================================
Package ?? ?? ? ??
============================================================================================
????:
vsftpd x86_64 3.0.2-22.el7 base 169 k
????
============================================================================================
?? 1 ???
?????169 k
?????348 k
Downloading packages:
#
vsftpd-3.0.2-22.el7.x86_64.rpm | 169 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
???? : vsftpd-3.0.2-22.el7.x86_64 1/1
??? : vsftpd-3.0.2-22.el7.x86_64 1/1
???:
vsftpd.x86_64 0:3.0.2-22.el7
???
[root@localhost ~]# service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service
[root@localhost ~]# /bin/systemctl start vsftpd.service
[root@localhost ~]# netstat -nltp | grep 21
tcp6 0 0 :::21 :::* LISTEN 11135/vsftpd
==============================
[root@localhost vsftpd]# vi /etc/vsftpd/vsftpd.conf
# 禁用匿名用户 12 YES 改为NO
anonymous_enable=NO
# 禁止切换根目录 101 行 删除#
chroot_local_user=YES
# 在尾部加入这行
allow_writeable_chroot=YES
============================
[root@localhost vsftpd]# service vsftpd restart
Redirecting to /bin/systemctl restart vsftpd.service
[root@localhost vsftpd]# /bin/systemctl restart vsftpd.service
[root@localhost vsftpd]# useradd theftp001
[root@localhost vsftpd]# echo "the001ok" | passwd theftp001 --stdin
Changing password for user theftp001.
passwd: all authentication tokens updated successfully.
[root@localhost vsftpd]# usermod -s /sbin/nologin theftp001
[root@localhost vsftpd]# setenforce 0
[root@localhost vsftpd]# iptables -F
[root@localhost vsftpd]# usermod -d /home/ theftp001
[root@localhost vsftpd]#
1) 为一个新用户设置他的专属私人目录(以设置网站目录为例):
[root@localhost ~]# useradd theftp002
[root@localhost ~]# echo "the002ok" | passwd theftp002 --stdin
Changing password for user theftp002.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# usermod -s /sbin/nologin theftp002
[root@localhost ~]# usermod -d /home/wwwroot/default theftp002
[root@localhost ~]#
登陆不进去就:
方法0:报错530 Login incorrect ,检查/etc/pam.d/vsftpd文件,
将auth required pam_shells.so
修改为->auth required pam_nologin.so
或者将auth required pam_shells.so注释
,然后重启vsftp(/bin/systemctl restart vsftpd.service)
方法1:打开阿里云的策略组端口21
方法2:使用一下命令创建vsftp用户:
# useradd -d /home/ ftp1
为ftp创建一个名为ftp1的用户
并绑定目录为/home/
# passwd ftp1 // 为ftp1用户创建密码
输入密码后回车 (输入密码时屏幕没有显示,需要重复输入确一次)
1-1)设置网站跟目录文件夹权限,确保ftp可以上传文件:
a. chmod a-w /home/wwwroot/default/
此时/default为555,/default的子文件夹及文件为777,/default文件夹不可直接新建或者上传文件和文件夹,需要:
mkdir /home/wwwroot/default/test/ 创建新文件夹test。
b. 创建好文件夹,然后将新文件夹 chmod -R 777 /home/wwwroot/default/test/将test权限改为777,
这是就可以向test里面用ftp创建文件夹和上传文件了。
c. 其他:
删除文件操作 rm -f /home/wwwroot/default/test/fm.html
删除文件操作 rm -rf /home/wwwroot/default/test/
2)阻止匿名访问和切换根目录:
vi /etc/vsftpd/vsftpd.conf
设置 chroot_local_user=NO
添加 allow_writeable_chroot=YES
3)常用vi编辑器命令:
进入vi:vi xxxxxxx
开始编辑:按键盘 i
结束编辑:按 esc
退出编辑并保存:连按 zz
4)启动ftp(推荐file zilla https://filezilla-project.org/)工具会直达系统目录。
a. 填写账号密码:
b. 设置默认目录/wwwroot/default(这个目录在centos7系统的目录是/home/wwwroot/default):
c. 传输模式为被动:
成功。
--其他拓展-----------
在default目录mkdr一个www目录,将nginx根目录更改为default下的www
[root@localhost ~]# find / -name nginx.conf
/usr/local/nginx/conf/nginx.conf
/lnmp1.5/conf/nginx.conf
[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
[root@localhost ~]# service nginx restart
Stoping nginx... done
Starting nginx... done
[root@localhost ~]#
-
用Navicat登录数据库:
0. 检查阿里云安全组3306端口是否打开;
1. 检查3306端口是否打开:
netstat -ntlp
2. mysql5.7版本:
vi /etc/my.cnf
尾部加入
skip-grant-tables
3. 设置mysql:
mysql -u root -p
mysql>
update
`
user
`
set
`host` =
'%'
where
`
user
` =
'root'
;
mysql> flush
privileges
;
重启mysql或者服务器即可。
提醒:遇到“
用navicat连接数据库报错:1130-host ... is not allowed to connect to this MySql server”请参考
遇到10038报错请查看
centos7为MySQL开启3306端口,解决navicat 10038报错,解决防火墙开放端口问题
和ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
消灭1130错误整个过程:
[root@centos ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| order_db |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
24 rows in set (0.01 sec)
MariaDB [mysql]> select Host, User,Password from user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *08A923FDF3482D3A943A5C55B5406C8284EEADE9 |
| 127.0.0.1 | root | *08A923FDF3482D3A943A5C55B5406C8284EEADE9 |
| ::1 | root | *08A923FDF3482D3A943A5C55B5406C8284EEADE9 |
+-----------+------+-------------------------------------------+
3 rows in set (0.00 sec)
MariaDB [mysql]> update user set Host='%' where User='root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> Ctrl-C -- exit!
Aborted
[root@centos ~]#
-
4. vsftp开机启动:
1)查看所有启动项
# chkconfig
2)设置自动启动
# chkconfig vsftpd on
3) 加入管理列表
# chkconfig --add vsfptd
4) 检查
# chkconfig --list vsftpd
-