前言:本来是和上一篇写在一起的,但后面越添越多,索性分开来,上一篇就纯粹为搭建环境吧,这篇主要讲后面安装配置一些东西
一、对centos7添加开机启动脚本对php进行开机启动服务。
在centos7中编译安装好php后,系统重启后并不会对php进行开机启动,所以需要对centos7添加开机启动脚本对php进行开机启动服务。
- 开启配置php-fpm pid
1.找到php-fpm.conf配置文件
/usr/local/php/etc/php-fpm.conf`
2.开启pid ,去掉分号注释
php-fpm.conf- 拷贝php-fpm脚本至/etc/init.d目录
cp /etc/php-7.3.5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
image.png
- 设置权限并启动php-fpm:
chmod 755 /etc/init.d/php-fpm
/etc/init.d/php-fpm start
chkconfig --add php-fpm
如果上面没有先kill掉php-fpm进程,则使用service php-fpm stop等命令会出现出现 php 7.x 编译安装 Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running
解决办法:
用 kill 办法关闭 php-fpm 进程
- PHP-FPM 自启动配置服务:
vim /etc/rc.d/rc.local
rc.local
- 最后,给出php-fpm以服务的方式启动、停止和重启:
service php-fpm start
service php-fpm stop
service php-fpm reload
参考:
https://blog.csdn.net/xiaobinqt/article/details/104966325
https://blog.csdn.net/aerchi/article/details/83858180
二、配置mysql开机自动启动
- centos7与centos6相比有什么不同:
在centos7中服务不在是用service这个命令来启动与停止,也不再用chkconfig来设置开机启动与否!在centos7中所有对服务的管理都集中到了systemctl当中;systemctl不再是合之前一样依赖/etc/init.d/下的脚本,它是通过配置文件来完成对服务的管理的; - 创建systemctl管理mysql的配置文件:
touch /usr/lib/systemd/system/mysql.service
- 配置mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
- 通过systemctl来启动mysql:
systemctl start mysql
ps -ef | grep mysql
image.png
- 通过systemctl 来设置mysql开机启动:
systemctl enable mysql
image.png
- 查看文件安装路径
whereis mysql- 查看运行文件所在路径(文件夹地址)
which mysql
参考:
https://www.cnblogs.com/JiangLe/p/7040744.html
https://blog.csdn.net/u013405116/article/details/90106863
三、配置nginx开机自动启动
同上面Mysql的步骤相似
- 进入到/lib/systemd/system/目录
cd /lib/systemd/system/
- vim nginx.service
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
- 保存退出
- 赋予脚本执行权限
chmod +x /usr/lib/systemd/system/nginx.service - 设置nginx.service为系统服务
systemctl enable nginx.service - 如果不想开机自启动了,可以使用下面的命令取消开机自启动
systemctl disable nginx - 通过系统服务操作nginx
systemctl start nginx.service
systemctl reload nginx.service
systemctl restart nginx.service
systemctl stop nginx.service
参考:
https://www.cnblogs.com/wntd/p/11668293.html
https://yq.aliyun.com/articles/120160
https://blog.csdn.net/stinkstone/article/details/78082748
-
最后,重启服务器,验证一下是否自动启动php-fpm和mysq和nginx
开机自动启动服务
四、配置共享文件夹
由于在开发的时候需要方便使用ide敲代码,所以在windows中建立一个和Linux共享的文件是很有必要的
环境:
- virtualbox6.1
centos7 - win7
开始
- 首先需要搭建好一个系统,centos,ubuntu也行,我这里搭建的是centos7。搭建的时候按照正常步骤搭建就行了,盘选择镜像是你想要搭建的(这里说这个是因为我一开始没有分清,搞的和乱,现在知道了,CentOS-7-x86_64-DVD-1708.ios是搭建centos时选择的盘,后面的VBoxGuestAdditions.ios是安装virtualbox时自带的一个镜像,后面挂载的就是这个东西,所以不要弄混淆了。装系统还是选centos镜像,挂载后面会提到)
- 安装VBoxLinuxAdditons.run依赖功能
yum update
yum install gcc
yum install gcc-c++
yum install make
yum install kernel-headers
yum install kernel-devel
(一定要先安装gcc和gcc-c++,再安装下面两个kernel,否则kernel无法完全编译)
如果出现“Kernel headers not found for target kernel 3.10.0-693.el7.x86_64. Please install them and execute /sbin/rcvboxadd setup”,则
1.update kernel
yum update kernel -y
2.Install the kernel-headers, kernel-devel and other required packages
yum install kernel-headers kernel-devel gcc make -y
- 更新到最新的源
yun update - 重启系统,使得环境生效
reboot -
重启系统后,点“设备-》分配光驱”
image.png -
然后在virtualbox界面中点 “设置-》共享文件夹”,路径是你想在本地的哪个地方共享,名称后面会用到
image.png - 查看查看光驱是否挂在IDE控制器下
输入 lsscsi 出现如下界面——> 其中出现/dev/sr0 代表你已经成功挂载光驱在IDE控制器下
- 建立文件夹
mkdir /media/cdrom,通过mount 命令挂载到/media/cdrom 目录下
mount /dev/sr0 /media/cdrom
image.png
出现如上图的话就说明挂载成功了 - 进入刚刚的文件夹中,cd /media/cdrom
sh ./VBoxLinuxAdditions.run
,执行完了后可能会有一个提示Running kernel modules will not be replaced until the system is restarted
,只需重启一下系统就可以了
进入 /media 目录出现sf_share(其中share是代表我共享文件夹的名字 share——前面出现的sf代表成功)
image.png -
试试看是不是可以共享了,在linux中新建一个文件看看windows里共享文件夹里是否有文件
image.png
image.png - 以上的是挂载的其中一种方式,下面讲一个更简单的
挂载到指定文件夹
- 上面的方式设置的是自动挂载,所以挂载到的位置是系统根目录下的media中,下面一个方式是可以挂载到指定的位置
如果设置里勾选了“自动挂载”的话,则系统会自动挂载到根目录下的media文件夹下,如果不选择“自动挂载”,则可以自己选择挂载到服务器的位置,如:我要挂载到/usr/local/nginx/html中,以方便敲代码,则只需输入代码 mount -t vboxsf share /usr/local/nginx/html,再reboot一下,就可以共享了。
- 要设置开机自动挂载,则在/etc/rc/rc.local中添加上面的命令mount -t vboxsf share /usr/local/nginx/html即可,然后执行一下权限设置 chmod +x /etc/rc/rc.local,再重启一下就可以开机自动挂载了
参考:https://www.cnblogs.com/nephyzw/p/12048950.html
https://blog.csdn.net/buyueliuying/article/details/51645649?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
https://blog.csdn.net/qq_22156459/article/details/88049089
https://blog.csdn.net/nanalinlinlin/article/details/47169811
https://www.jianshu.com/p/39327c9ea368
网友评论