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

    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下载

image.png

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


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开发入门指南简介

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,273评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,349评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,709评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,520评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,515评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,158评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,755评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,660评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,203评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,287评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,427评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,122评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,801评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,272评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,393评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,808评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,440评论 2 359

推荐阅读更多精彩内容