php学习路(一)--lnmp环境搭建

需求

开始学习php,首先搭建linux+nginx+mysql+php环境

环境

Mac 电脑,通过vagrant管理VirtualBox,linux+nginx+mysql+php搭建在此虚拟机上

安装

  1. 本地创建目录,用做虚拟机目录
mkdir -p /Users/kai.yang/Desktop/LNMP
  1. 安装VirtualBox

去官网https://www.virtualbox.org/wiki/Downloads下载最新版的Virtualbox,然后双击安装,一直点击确认完成。

  1. 安装Vagrant

去官网 https://www.vagrantup.com/downloads.html下载最新版的Vagrant,然后双击安装

  1. Vagrant命令

vagrant box add 添加box的操作
vagrant init 初始化box的操作,会生成vagrant的配置文件Vagrantfile
vagrant up 启动本地环境
vagrant ssh 通过ssh登录本地环境所在虚拟机
vagrant halt 关闭本地环境
vagrant suspend 暂停本地环境
vagrant resume 恢复本地环境
vagrant reload 修改了Vagrantfile后,使之生效(相当于先 halt,再 up)
vagrant destroy 彻底移除本地环境
vagrant box list 显示当前已经添加的box列表
vagrant box remove 删除相应的box
vagrant package 打包命令,可以把当前的运行的虚拟机环境进行打包
vagrant plugin 用于安装卸载插件
vagrant status 获取当前虚拟机的状态
vagrant global-status 显示当前用户Vagrant的所有环境状态

  1. 官网http://www.vagrantbox.es ,下载centosbax

    php学习路(一)--lnmp环境搭建_第1张图片
    image.png

  2. 导入box,vagrant box add {title} {url}

vagrant box add lnmp_centos7 /Users/kai.yang/Desktop/LNMP/environment/centos7.box

7.进入LNMP,初始化vagrant init {title}

cd /Users/kai.yang/Desktop/LNMP
vagrant init lnmp_centos7

成功展示


image.png

初始化完成后,目录下会生成Vagrantfile配置文件,这就是Vagrant的精髓文件,所有配置通过此文件管理,内容很多,本文先只介绍我们需要的,详细可看此文https://blog.csdn.net/u011781521/article/details/80291765
总结下过程:

$ vagrant box add {title} {url}

$ vagrant init {title}

$ vagrant up

8 . 挂载路径配置,vagrant的强大之处很多,其中一个就是挂载的本地磁盘和虚拟机的共享文件夹,只需要配置下Vagrantfile配置文件即可。


image.png

如图,在配置文件中添加此句
config.vm.synced_folder "/Users/kai.yang/Desktop/LNMP/mnt", "/mnt"
,表示将本地/Users/kai.yang/Desktop/LNMP/mnt文件夹挂载到虚拟机的/mnt目录。

  1. 本地移动mysql,php安装包放入挂载目录


    image.png
  2. 启动虚拟机,进入vm目录进行 vagrant up

  3. ssh进入虚拟机

vagrant ssh
  1. 进入虚拟目录,解压msyql,php
cd /mnt
tar -zxvf mysql-386776d.tar.gz
tar -zxvf   php-7.2.12.tar.gz
image.png
  1. 安装mysql, 官网地址https://downloads.mysql.com/archives/community/,我采用的是MySql 5.7.21,因为每个版本的mysql可能有所不同,如果你完全按如下操作的话,请选择这个版本,否则可能会报不知道的异常,需要自己调适
#进入安装mysql配置文件目录
 cd /usr/local/

##创建配置文件
  vi  my.cnf
##配置文件内容
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
max_connections=5000
default-time_zone = '+8:00'


##重命名 mysql文件夹
mv /mnt/mysql-386776d /mnt/mysql

#将my.cnf放入/etc下
sudo cp -a /usr/local/my.cnf /etc/my.cnf

#将mysql移到/usr/local下
sudo mv mysql /usr/local/mysql
cd  /usr/local/mysql

#创建mysql用户
sudo groupadd mysql --创建mysql用户组组
sudo  useradd -r -g mysql mysql --创建mysql用户并添加到mysql用户组中
sudo chown -R mysql /usr/local/mysql/ --将mysql目录访问权限赋为myql用户
sudo chgrp -R mysql /usr/local/mysql/ --改变mysql目录的用户组属于mysql组



# 更新依赖
sudo yum install libaio

#配置日志
cd /var/log/
 sudo touch mysqld.log
sudo chown mysql:mysql mysqld.log
#数据库数据位置
sudo mkdir -p /usr/local/mysql/data
sudo chown mysql:mysql /usr/local/mysql/data 

#初始化服务
 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

#此时 cat /var/log/mysqld.log 会看到启动的临时密码,表示初始化成功
#2018-12-09T00:40:45.986186Z 1 [Note] A temporary password is generated for root@localhost: fG2v1JalOo!B

#启动mysql
cd /var/run/
 
 mkdir mysqld
 chmod 777 mysqld
 cd mysqld
 touch mysqld.pid
 chmod 777 mysqld.pid
 chown mysql:mysql mysqld.pid
 /usr/local/mysql/support-files/mysql.server start

#启动完成后,尝试登陆
/usr/local/mysql/bin/mysql -uroot -p 
#然后会提示输入密码,输入刚才的临时密码
#此时进入mysql命令行页面标准安装成功
#Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
#mysql> 

#设置开机启动
设置开机自启动
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld

#添加系统路径
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile

#修改登录密码
#登陆mysql,更新密码,找到刚才的临时密码
grep 'temporary password' /var/log/mysqld.log
# 使用临时密码登录
mysql -u root -p
# 修改root账户的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yeepay.com'

#配置远程访问,进入客户端后
use mysql;
#可自定义用户
grant all privileges on *.* to 'root'@'%' identified by 'yeepay.com' with grant option;
flush privileges;

mysql> select user,host from user
    -> ;
+-----------+-----------+
| user      | host      |
+-----------+-----------+
| admin     | %         |
| root      | %         |
| mysql.sys | localhost |
| root      | localhost |
+-----------+-----------+
4 rows in set (0.00 sec)

% 就表示可以远程访问了,如果不行,检查下防火墙。

14.安装php7

#返回php解压包
cd /mnt/php-7.2.12

#进行编译
./configure --enable-fpm --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc 

#如果发现libxml2-devel错误,yum安装l libxml2-devel后,重新编译
yum install libxml2-devel

#编译完成后,make install ,可能要等一会
make && make install

cp  php.ini-development /usr/local/lib/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
chmod +x /etc/init.d/php7-fpm
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default  php-fpm.d/www.conf

#配置完毕
/etc/init.d/php7-fpm  start 启动php
#此时如果显示Starting php-fpm  done表示启动完成


#php添加环境变量
 vi /etc/profile
# 加入export PATH=/usr/local/php/bin:$PATH
source /etc/profile
#查看版本
 php -v

14.安装nginx,我采用yum安装nginx

#加入nginx.repo
vim /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1


#安装
yum install nginx

#启动nginx
systemctl start nginx


15.安装Mongodb扩展Mongodb1.5
因需要使用Mongodb,所以要安装Mongodb扩张包,从官网https://pecl.php.net/package/mongodb下载

php学习路(一)--lnmp环境搭建_第2张图片
image.png

选择合适的版本,比如我php7,我选择Mongodb1.5,否则会报找不到某php字段的异常


php学习路(一)--lnmp环境搭建_第3张图片
image.png

开始安装

/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install 

#三步之行完了,就表示安装完了,在php添加扩展
cd /usr/local/lib
vi php.ini 
#添加extension=mongo.so
#重启php
service php-fpm restart
#如果报12月 09 04:24:46 localhost.localdomain systemd[1]: Failed to start LSB: starts php-fpm.
#先杀死php服务重启
ps -ef|grep php-fpm
#kill -9 对应php的进程后重启


16.安装mysql扩展
具体安装请看php学习路(五)-- Tp项目结构链接数据库中介绍

参考博客 https://blog.csdn.net/yjk13703623757/article/details/70040797

目录:php学习路-- Thinkphp开发入门指南简介

你可能感兴趣的:(php学习路(一)--lnmp环境搭建)