php开发的最佳姿势-3.安装apache2、mysql

作者: admin 分类: laravel, PHP, php7, 未分类 发布时间: 2015-10-13 13:19 ė 6没有评论

接下来是安装 apache。百度了一篇百度经验  点击

安装命令:sudo apt-get install apache2

安装完成后,进入到/etc/apache2中(根据自己的实际安装目录),这边我配置文件在/etc/apache2中。

我们看到没有想象中的httpd.conf配置文件,这里要说明的是apache2的配置文件是apache2.conf,而不是http.conf。

打开apache2.conf。写入两条语句

ServerName localhost

DirectoryIndex index.html index.htm index.php

这里的ServerName localhost是为了防止最后开启apache2服务的时候会提示DNS出错。

不信你自己先屏蔽掉这两句,启动试一下,应该是报dns错误

重启命令:/etc/init.d/apache2 restart

这就算安装完毕了。

下一步是 apache2和php的结合。

——

在安装apache2的时候没有遇到了问题。安装apache2非常的简单,运行 apt-get  就可以了。

sudo apt-get install apache2

安装完毕之后,需要修改一下配置文件,在ubuntu下面 apache2的配置文件在 /etc/apache2/ 下面,注意不是  http.conf 而是 apache2.conf

如果在启动apache的时候,出现dns错误

AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 10.173.9.64. Set the ‘ServerName’ directive globally to suppress this message

这个错误,我们需要在  apache2.conf里面,增加

ServerName localhost
DirectoryIndex index.html index.htm index.php

第一句就是解决这个问题的。再启动就成功了。

运行如下命令重启下:

sudo /etc/init.d/apache2 restart

但是更大的问题在于,我们无法将php7和apache2连接起来。

查了好多资料都无果。

以下是做测试的时候出现的问题。

基本确定了,php在  make的时候,会生成一个  libphp7.so,如何生成以及生成的文件在哪里   取决于  make之前的那堆  configure,那堆configure我又看不懂,但是有些文章大体上是说,

需要configure 增加一个  with-apxs2=/usr/bin/apxs2  这样的 配置。

然后在make 的时候, 会告诉你没有  apxs2这个东西,然后我们就又开始寻找 apxs2

发现需要安装   apache2-dev  这个玩意。

安装方法很简单  apt-get install apache2-dev
安装完了之后貌似就可以用这个apxs2 了,但是我们依然不知道路径应该怎么指定

下面又有一个命令用来查看

whereis  apxs2

系统返回:  /usr/bin/apxs2       /usr/share/man/man1/apxs2.1.gz

这样我们就知道了 路径是  /usr/bin/apxs2。

就可以了。再make,报了内存不足的错误。

virtual memory exhausted: Cannot allocate memory
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

俺买的这个阿里云服务器是个512内存的,装上apache之后可能有些吃力了。

解决方法网上有:再在configure里面再增加一个配置

–disable-fileinfo

最后大家注意,这个配置的每一个的开头都是两个横线,网页显示有问题,不能误导大家。

做完了这些之后,依然php7和apache2过不到一块去,原因还是没有找到  libphp7.so,就是没有。

现在我决定告一段落,先安装一个php5.5.9先用着,同时发帖子问一下。能解决了再换成 php7.

以上!

下面直接安装php5

apt-get install php5 libapache2-mod-php5
安装成功,在 apache的站点目录下放置一个 测试php文件,输出  phpinfo,成功。 我的php7,就先这样吧。

下面开始安装mysql

apt-get install mysql-server
这个就会全部安装相应的mysql的软件。

过程中会让你设定mysql的密码,设置就好。

安装完毕之后, 用以下命令检验mysql是否安装成功。

sudo netstat -tap |grep mysql

运行结果:
tcp        0      0 localhost:mysql         *:*                     LISTEN
19865/mysqld

如果能耐发现我们的mysql服务在被监听,就证明mysql已经安装好了。下面我们连接一下

 mysql -u root -p
输入你设置的密码。

然后出来 mysql的前置操作符,证明我们已经连上mysql,可以输入mysql的命令了。

show databases;

show tables;

能正常执行,就证明可以使用了。

下一步我们来安装phpmyadmin,我们希望给phpmyadmin单独创建一个域名。用来访问。

下面我们先来处理一下apache2虚拟主机的问题。

ubuntu 的apache2的虚拟主机设置,我们看到  /etc/apache2/下面有个  site-available 和 site-enable文件夹。site-available就是可用的虚拟主机配置,site-enable就是生效的虚拟主机配置,站点原来启用的配置是 000-default.conf,我们看到在两个文件夹中都存在这个名字的文件。我们在 site-available文件夹中拷贝一份000-default.conf重命名为 phpmyadmin.conf。

然后执行 sudo  a2dissite 000-default.conf    停止使用这个虚拟主机文件

再执行  sudo a2ensite phpmyadmin.conf    让这个文件生效

我们再看site-enable文件夹中的文件有了变化,000-default.conf 不见了,执行了 dissite的结果,又自动生成了phpmyadmin.conf   这个文件链接。

然后运行  sudo service apache2 reload或者restart,即可生效。我们自己指定域名和在本地指定host,即可访问了。

在安装phpmyadmin的过程中没什么问题,也顺利的创建了给phpmyadmin用的虚拟主机,但是运行的时候报错了。

查看日志:Fatal error: require_once(): Failed opening required ‘/usr/share/php/gettext/gettext.inc’ (include_path=’.:/usr/share/pear:/usr/share/php’) in /usr/share/phpMyAdmin/libraries/select_lang.lib.php on line 370

经过多方查找,简单看出了问题的所在。

phpmyadmin默认安装在 /usr/share/phpmyadmin 下面。我为了统一管理,把phpmyadmin的源文件cp到了  /var/www/phpmyadmin 下面并以此目录设置了虚拟主机。结果出错。将虚拟主机的目录指向 /usr/share/phpmyadmin 则正常运行。

/usr/share/php/gettext/gettext.inc 这个文件也正常存在。

我推测可能是文件的权限问题吧。 分别看了下也没有什么问题。

最终我找到了出错的那一行  require_once GETTEXT_INC;

是一个 常量的地址,肯定是这个地址有问题,我在上面增加了一行  echo GETTEXT_INC;

在运行phpmyadmin的页面,页面上显示,./libraries/php-gettext/gettext.inc

证明常量是 这个值,原来我一直以为 这个路径会直接指向 /usr/share/php/php-gettext/gettext.inc

没想到是指向了本地文件夹。我在libraries文件夹中查找,果然找到了这个路径指向的文件,是个链接文件。

在 /usr/share/phpmyadmin  中

:/usr/share/phpmyadmin/libraries/php-gettext# ls -l
total 0
lrwxrwxrwx 1 root root 36 Dec 12  2013 gettext.inc -> ../../../php/php-gettext/gettext.inc
lrwxrwxrwx 1 root root 36 Dec 12  2013 gettext.php -> ../../../php/php-gettext/gettext.php
lrwxrwxrwx 1 root root 36 Dec 12  2013 streams.php -> ../../../php/php-gettext/streams.php

在  /var/www/phpmyadmin/libraries/php-gettext 下链接文件的结果是这样的。链接文件的指向路径没变,但是存放位置变了,所以找不到是正常的

/var/www/phpmyadmin/libraries/php-gettext# ls -l
total 0
lrwxrwxrwx 1 root root 36 Oct 17 09:00 gettext.inc -> ../../../php/php-gettext/gettext.inc
lrwxrwxrwx 1 root root 36 Oct 17 09:00 gettext.php -> ../../../php/php-gettext/gettext.php
lrwxrwxrwx 1 root root 36 Oct 17 09:00 streams.php -> ../../../php/php-gettext/streams.php

由此可以推断,如果要将phpmyadmin的源文件存放地址放到另外的地方,就要重新生成这些link文件,使用绝对路径指向  /usr/share/php/php-gettext/,

制作方式自行百度吧。php7也暂时不弄了,等正式版发布之后在弄。

 

本文出自 高度PHP,转载时请注明出处及相应链接。

本文永久链接: http://ypweb.net/3721.html

0

发表评论

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

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部