-

在本机直接搭建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环境

   https://lnmp.org/install.html

  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

centos的snmp只允许读 centos snmp配置_centos的snmp只允许读

方法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. 填写账号密码:

centos的snmp只允许读 centos snmp配置_mysql_02

b. 设置默认目录/wwwroot/default(这个目录在centos7系统的目录是/home/wwwroot/default):

centos的snmp只允许读 centos snmp配置_nginx_03

c. 传输模式为被动:

centos的snmp只允许读 centos snmp配置_centos的snmp只允许读_04

成功。

--其他拓展-----------

在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' 


centos的snmp只允许读 centos snmp配置_centos_05

消灭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

-