开发板上如何配置apahe2+mysql+php7
1,安装apache2
sudo apt-get install apache2
修改webroot
vim /etc/apache2/apache2.conf #在其中复制最后一个 <Directory>...</Directory>的内容,粘贴,并且把其最终的地址更改为自己的webroot vim /etc/apache2/sites-available/000-default.conf #把其中的DocumentRoot改为刚刚填写的webroot
重启apache2
sudo service apache2 restart sudo /etc/init.d/apache2 restart
2,安装mysql
sudo apt-get install mysql-server
我的版本安装完成以后mysql默认是用sudo启动的,密码是‘’,如何让mysql不用sudo也能启动而且用密码来识别呢?
sudo mysql -u root -p //进入以后 use mysql; // 下面这句命令有点长,请注意。 update mysql.user set authentication_string=password('密码') where user='root' and Host ='localhost'; update user set plugin="mysql_native_password"; flush privileges; quit;
3,安装php
目前开发板上只有php7能安装,php5已经没有了,各种方法安装php5均以失败告终,所以最终只能升级代码,使用php7,暴力升级php版本是真的烦
sudo apt-get install php sudo apt-get install php-mysql sudo apt-get install php-curl
重启apache应该就可以在webroot中打开php文件了,
但是,也不排除有些特殊情况下不知道什么原因就导致apache2不认识php,不会解析php代码,应该怎么做呢?
装一个支持包就行了:记得重启apache
sudo apt-get install libapache2-mod-php
其他相关的配置也写在本博客中:
给php安装gd插件:
sudo apt-get install php-gd
然后在php.ini(/etc/php/7.2/fpm/php.ini)中把gd2的extension打开,在本机webroot下输出phpinfo(),看到gd处于打开状态就可以了。
补充一下哈,后期见过syslog里面报错gd2找不到的bug,所以在php.ini中打开extension的时候,要注意,extension=gd还是extension=gd2,当然如果不想这么改,找到gd.so然后建立一个超链接就可以了
安装php-fpm插件(好像是这样的)
sudo apt-get install php-fpm
##此处补充一句,php-fpm如果是给nginx用的话,,老铁们,一定要注意了,你会发现,nginx能够打开静态的html,说什么都打不开php,显示404找不到,这是为啥呢?简而言之,nginx会把请求php的内容转发到9000端口,如果你不让php-fpm监听9000端口,呵呵呵呵呵,php-fpm就收不到任何消息啊,坑啊坑,,所以,你可以使用:netstat -antp | grep :9000 来检测一下phpfpm是否搭理你,如果什么消息都没有,说明你的php-fpm根本没有监听9000!所以如何让php-fpm监听9000呢?方法:1)切换到 /etc/php/7.2/fpm/pool.d 目录下 打开 www.conf。2),看到这行 listen = /run/php/php7.2-fpm.sock 将其改成 listen = 127.0.0.1:9000。保存重启nginx和php-fpm,完成!
php-fpm高并发配置:
经过本人实验发现fpm只能并发6个,所以需要改fpm的配置文件,起码改成可以并发22个。sudo vim /etc/php/7.2/fpm/pool.d/www.conf,特殊备注:此文件夹下不要乱放东西,因为主要的php-fpm配置文件在/etc/php/7.2/fpm/php-fpm.conf下,而它是把/etc/php/7.2/fpm/pool.d/*.conf全引用过来了。
目前试验过的比较好的配置参数是这样的:
pm = dynamic pm.max_children = 150 pm.start_servers = 15 #注意这个参数的值必须在下两个参数之间,否则php-fpm启动不起来,一直报错。 pm.min_spare_servers = 4 pm.max_spare_servers = 15
#表现正确回复22个,fpm有关的进程达到71个,有明显改善。
php安装zip插件
sudo apt-get install php-zip #这也太简单了吧?简直不敢相信 #php -m查看一下也在的,然后去php.ini中加上extension扩展,扩展指向zip.so就行了,使用一下貌似也木有问题。
4,如何向mysql中导入或者导出数据?
create database 数据库名称; mysql -h localhost -u root -p yourdatabase < ./hehe.sql #这是从sql文件中,向数据库yourdatabase导入数据 mysqldump -h localhost -u root -p yourdatabase > ./test.sql #从yourdatabase中导出数据并且保存为test.sql
5,经常向另一台ubuntu系统的设备传输数据,如何免密传输?
首先,本机上应该有ssh服务,没有的话安装一个
sudo apt-get install openssh-server
需要两台ubunut设备:
my computer:211
aim computer:129
ssh-keygen -t rsa #on my computer,然后会提示输入密码认证啥的,不用管,直接摁enter,然后会生成俩文件 ~/.ssh,其中一个是: id_rsa ,另一个是:id_rsa.pub,我们需要把把id_rsa.pub传输到aim computer上 scp ./id_rsa.pub pi@192.168.3.129:~/.ssh #此时还是需要密码的,然后要登上aim computer修改一下刚刚传过来的文件的名称 mv id_rsa.pub authorized_keys #有可能要加sudo,记不清了,传过来之前修改倒是也可以,完成以后,my computer向aim computerscp数据就不需要密码了
6,设置chromium-browser全屏启动
cd /home/pi/.config/chromium/Default/ chmod 444 Preferences #设置权限 chattr -i Preferences #忽略所有对该文件权限之类的更改,按我的理解嘛,就是异常退出以后下一次再启动chromium的时候不提醒是否恢复上次界面,取消的设置是这样的,chattr -i /home/username/.config/chromium/Default/Preferences,其实就是再执行一次chattr -i Preferences cd ~/.config/lxsession/LXDE-pi sudo vim autostart #添加一句话,注意,没有引号,也没有后台运行符 chromium-browser --start-fullscreen http://www.baidu.com
为什么不能加到/etc/rc.local中呢?因为rc.local是整个机器的启动文件,据说默认是sudo运行命令的,而chromium不能sudo运行,个人猜测那时候有些程序还没有启动或者加载,所以除了chromium还有其他程序也不能这样启动
7,如何安装nginx
注意,要不想nginx和apache2抢80端口,建议任选其中一个运行,不能同时运行哈。
安装依赖包:install build-essential libpcre3 libpcre3-dev libssl-dev 等
下载源码文件,如果需要对应的插件比如rtmp插件一块下好
./configure的时候使用--add-module=指定对应的插件目录,
make -j8
sudo make install
如果你已经有编译好的nginx,可以通过sudo ./nginx -V知道当年的编译命令。
nginx.conf各有需求,不多说了。