一次LAMP+mongodb环境搭建过程

昨天根据一位朋友的要求帮忙搭建一个lamp的环境,一路上遇到各种问题,记录在此。

问题:给你一台全新的centos系统,安装apache+mysql+php5.6+mongodb.

一台全新的centos,意味着可能没有网,没有vim,没有ping。。。当然如果ssh登录到远程服务器那肯定是有网的。如果你是直接在物理机上面操作,如果遇到没有网的情况,

vi /etc/sysconfig/network-scripts/ifcfg-eno(后面是一段数字)

将这个文件中的ONBOOT=no改成ONBOOT=yes,之后:wq保存退出

service network restart

重启网络,现在可以安装各类工具了,如果没有ifconfig ,可以yum install net-tools安装,
如果不知道包名,比如我要安装vim,但是不知道是哪一个包名,可以用
yum list |grep vim进行查找。现在开始安装lamp+mongo之旅了。

什么是源
关于什么是源,就好比,我们下载微信app,可以从豌豆荚下载,可以从谷歌商店下载,还可以从腾讯官网下载,
那么豌豆荚、谷歌商店、腾讯就相当于这个包的源,每个源有自己的url链接,centos中,
yum源可以在/etc/yum.repos.d/中查看。或者通过yum repolist查看源列表

安装apache

注意apache其实叫httpd,为什么是这样,我也不清楚,应该有历史渊源关系,好了,

yum list installed |grep httpd

查看一下是否已经安装了apache,如果显示为空,那么使用

yum list |grep httpd 

查找一下有哪些包,出现三列,第一列是包名,第二列是版本号,第三列是包的源。选择一个“名字比较合适的”包,比如这里选择httpd.x86_64这一个,为什么查找出来的还有别的包呢?别的包可能是别的用处,跟apache稍微有点关系的,但不是apache的主程序。

开始安装apache :

yum install httpd.x86_64

安装完成后service httpd start 启动,配置文件在/etc/httpd/conf/httpd.conf,可以自行就该,

如果找不到文件,可以全局搜索 find / -name httpd.conf

然后浏览器访问http://你机器的IP ,应该就可以看到apache的默认页面了。

如果看不到可能是防火墙的原因,关闭防火墙 :

systemctl stop firewalld.service,然后重启apache

 

安装php5.6

 

centos默认的源里面没有php5.6,需要添加webtatic源,按照这个页面的步骤安装webtatic源:https://webtatic.com/packages/php56/,注意centos版本号和php版本号,如果不懂英文按如下操作

 

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php56w php56w-opcache

 

这样就安装上了php56w,至于后面的w是什么意思,应该就是webtatic的w的缩写吧。

 

安装mongodb,和php的mongodb 扩展

phpmongodb的安装有一个坑,随后会讲到。

在etc/yum.repos.d创建一个mongo.repo的文件,放入如下内容(这一步是创建源)

[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

然后

yum install mongodb-org

进行安装,mongodb默认监听27017端口,注意防火墙的问题

sudo service mongod start|stop|restart

启动|关闭|重启。

现在安装php-mongodb扩展,webtatic好像没有php56w的mongodb扩展,于是需要用pecl安装,pecl需要php-devel,于是

yum install php56w-devel

然后安装pecl:

yum install php56w-pecl-igbinary.x86_64 为什么是这个包,我也不清楚,试出来的。

pecl install mongo ,注意,坑来了,此处千万不要pecl install mongodb,因为这个扩展我

<?php $m = new Mongo() ; ?>会提示mongo class 不存在啊,虽然命令行 中使用 php -m ,或者phpinfo()中可以看到有mongo的大名,但是并没有什么卵用啊,注意此处~!

为什么是这样我也不清楚啊,我也是试出来的,然后继续,提示缺少openssl,于是

yum install openssl-devel.x86_64

安装完成后,修改php配置文件vi /etc/php.ini 添加 extension=mongo.so(后面没有分号),好了,自己试一下Mongo这个类是不是就出来了。

最后安装mysql

下载和安装mysql源:
下面是centos7的安装方法,其他版本见:http://dev.mysql.com/downloads/repo/yum/

rpm -qa |grep mysql查看一下以前有没有安装过mysql的rpm源,有的话通过rpm -e 包名进行删除,否则下面会产生冲突

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装这个包后,会获得两个mysql的yum repo源:
/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。现在开始安装mysql:

 yum install mysql-server

修改root密码:
重置密码前,首先要登录

mysql -u root

登录时有可能报这样的错:ERROR 2002 (HY000):
Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),
原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

chown -R root:root /var/lib/mysql
service mysqld restart
mysql -u root
mysql > use mysql;
mysql > mysql -u root
mysql > update user set password=password('123456') where user='root';
mysql > exit;

OK,一切完毕。

One thought on “一次LAMP+mongodb环境搭建过程”

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注