ubuntu mysql apache_ubuntu下安装Apache+PHP+Mysql

电影《社交网络》中,facebook创始人马克.扎克失恋后入侵哈佛大学宿舍楼服务器,窃取数据库资料,并在两个小时内完成了一个给校内女生评分的交互网站,该网站一天内点击数过10W,直接导致学校服务器崩溃。。。。。。

其实,构建那样一个网站并不需要很多高深的技术,任何一个有一定网络编程基础的人都可以做到。马克构建网站所用的是Apache服务器和PHP服务器脚本语言,我曾经用三天时间学习PHP,然后用了两个星期为学校写了一个网站,可见PHP是很简单的,而facebook后台也是用php写的,当然,大家现在看到的我的wordpress博客后台也是php~~。

话说回来,很多人可能已经用上ubuntu了,大家可能花了大量时间在ubuntu的美化上,这无可厚非,但是,ubuntu应该给我们的工作和学习带来更多的便利和方便。ubuntu作为linux,为我们提供了强大的网络方面的功能,其中的服务器技术尤其强大,安全。如果不学习linux的网络技术,很难说自己掌握了linux。

今天,我在ubuntu下配置了一个Apache服务器。通过Apache我们可以学习php网络编程,可以用它来部署自己本地的wordpress博客,从而进一步通过网络和朋友交流。从此,你将深刻体会到网络带个我们的神奇力量,至少我是这样觉得的~~

步骤一,安装apache21sudo apt-get install apache2

安装完成。

运行如下命令重启下:1sudo /etc/init.d/apache2 restart

在浏览器里输入http://localhost或者是http://127.0.0.1,如果看到了It works!,那就说明Apache就成功的安装了,Apache的默认安装,会在/var下建立一个名为www的目录,这个就是Web目录了,所有要能过浏览器访问的Web文件都要放到这个目录里。

步骤二 ,安装php:1sudo apt-get install libapache2-mod-php5 php5

此外,建议安装扩展php5-gd php5-mysql,安装方式同上.

安装完后,我们要重新启动Apache,让它加载PHP模块:1sudo /etc/init.d/apache2 restart

接下来,我们就在Web目录下面新建一个test.php文件来测试PHP是否能正常的运行,命令:1sudo gedit /var/www/test.php

然后输入:12<?php echo "hello,world!!"?>

接着保存文件,在浏览器里输入http://127.0.0.1/test.php,如果在网页中显示hello,world!!,那就说明PHP已经正常运行了。

步骤三,安装mysql数据库:1sudo apt-get install mysql-server mysql-client

apt-get程序会自动下载安装最新的mysql版本。在安装的最后,它会要求里输入root的密码,注意,这里的root密码可不是Ubuntu的root密码啊,是你要给MySQL设定的root密码。

步骤四,安装phpmyadmin-Mysql数据库管理1sudo apt-get install phpmyadmin

phpmyadmin设置:

在安装过程中会要求选择Web server:apache2或lighttpd,使用空格键选定apache2,按tab键然后确定。然后会要求输入设置的Mysql数据库密码连接密码Password of the database’s administrative user。

然后将phpmyadmin与apache2建立连接,以我的为例:www目录在/var/www,phpmyadmin在/usr/share /phpmyadmin目录,所以就用命令:1sudo ln -s /usr/share/phpmyadmin /var/www

建立链接。

phpmyadmin测试:在浏览器地址栏中打开http://localhost/phpmyadmin。

以上ALMP的基本组件就安装完毕了,下面我们再来看一些其他的设置:

步骤五,设置Ubuntu文件执行读写权限

LAMP组建安装好之后,PHP网络服务器根目录默认设置是在:/var/www。由于Linux系统的安全性原则,改目录下的文件读写权限是只允许root用户操作的,所以我们不能在www文件夹中新建php文件,也不能修改和删除,必须要先修改/var/www目录的读写权限。在界面管理器中通过右键属性不能修改文件权限,得执行root终端命令:1sudo chmod 777 /var/www

。然后就可以写入html或php文件了。777是linux中的最高权限,表示可读,可写,可执行。

http://blog.csdn.net/guxch/article/details/8949048

http://www.cnblogs.com/lynch_world/archive/2012/01/06/2314717.html

http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html

http://www.jb51.net/article/21228.htm

服务器上的mysql默认数据目录为/var/lib/mysql/,同时服务器的/空间不是很大,而近期又有大量的日志需要导入进行分析,时常搞得/的空间捉襟见肘,晚上一狠心就想把mysql的数据目录转移到另外一块硬盘/data中。

于是关闭mysql服务:

service mysqld stop

转移mysql数据目录

mv /var/lib/mysql/ /data/

编辑my.cnf

vi /etc/my.cnf

修改其中的datadir和socket到新的路径

[mysqld]

datadir=/data/fuhj/mysql

socket=/data/fuhj/mysql/mysql.sock

本以为修改完启动mysql服务之后就没问题了。

service mysqld start

但是尽管启动服务没有问题,但是通过mysql客户端连接的时候却报错:

[root@hostXXX data]# mysql -u root -p

Enter password:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

在网上搜了半天也没个所以然,一个个都是相互抄袭,各种拷贝,没有一个靠谱的。

自己分析了一下,提示说无法通过socket文件/var/lib/mysql/mysql.sock连接到mysql服务器,也就是说对于mysql程序来说,尽管我把socket文件从/var/lib/mysql/mysql.sock转移到了/data/mysql/mysql.sock我在my.cnf里指定了mysqld知道了,但是对于mysql还是会从默认的安装目录/var/lib/mysql/里找这个mysql.sock文件,找不着,就不知道从哪里启动了。

为了验证我的想法,我首先从转移后的路径做了个软连接指向到mysql的默认目录里,如果mysql程序能连上说明想法是正确的。

ln –s /data/mysql/mysql.sock /var/lib/mysql/

做完软连接,重启mysql服务,再次通过mysql程序连接,没有问题,可以连上了。

[root@host160 lib]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.1.71 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

那说明就是这里的问题了。

其实不做软链接也是可以的,只需要在/etc/my.cnf里添加[mysql]字段指定socket的位置到我们转移后的位置即可

[mysql]

socket=/data/mysql/mysql.sock

作者: 付海军

出处:http://fuhj02.cnblogs.com

版权:本文版权归作者和博客园共有

转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢

要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任

个人网站: http://www.fuhaijun.com/

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决办法:

cd /etc/init.d

mysqld --user=root start

参考文章:http://apps.hi.baidu.com/share/detail/854577

今天服务器遇到了一个很熟悉的问题输入#mysql -u root -pERROR 2002 (HY000):Can't connect to local MySQL server随即上网找寻答案根据大家提供的方法我逐一尝试

方案1.

1.#ps -A|grep mysql 显示类似:1829 ? 00:00:00 mysqld_safe

1876 ? 00:00:31 mysqld

2.#kill -9 1829

3.#kill -9 1876

4.#/etc/init.d/mysql restart

5.#mysql -u root -p 他的麻烦解决了,我的还没解决!

继续找方案2

先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.

另外看看是不是权限问题.

------------------------------------------------------------------------------------

[root@localhost beinan]#chown -R mysql:mysql /var/lib/mysql

[root@localhost beinan]# /etc/init.d/mysqld start

启动 MySQL: [ 确定 ]

[root@localhost lib]# mysqladmin -uroot password '123456'

[root@localhost lib]# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3 to server version: 4.1.11

Type 'help;' or '\h' for help. Type '\c' to clear the buffe他的也解决了,我的麻烦还在继续,依然继续寻找

方案3

问题解决了,竟然是max_connections=1000 他说太多了,然后改成500也说多,无奈删之问题解决了。还是不行

方案4 /var/lib/mysql 所有文件权限 改成mysql.mysql 不行不行方案5

摘要:解决不能通过mysql.sock连接MySQL问题 这个问题主要提示是,不能通过 '/tmp/mysql.sock'连到服务器,而php标准配置正是用过'/tmp/mysql.sock',但是一些mysql安装方法将 mysql.sock放在/var/lib/mysql.sock或者其他的什么地方,你可以通过修改/etc/my.cnf文件来修正它,打开文件,可 以看到如下的东东:

[mysqld]

socket=/var/lib/mysql.sock

改一下就好了,但也会引起其他的问题,如mysql程序连不上了,再加一点:

[mysql]

socket=/tmp/mysql.sock

或者还可以通过修改php.ini中的配置来使php用其他的mysql.sock来连,这个大家自己去找找

或者用这样的方法:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

成功了,就是这样ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

OK!

以上资料是网上的资料

我今天遇到的情况是我使用的mysqld_safe --user=mysql &重启mysql发现无法启动mysql,最后用/etc/init.d/mysqld start启动成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值