zoukankan      html  css  js  c++  java
  • 开发板上如何配置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各有需求,不多说了。

  • 相关阅读:
    带参的方法
    类的无参方法
    类和对象
    关于线程间的通信的几个解决事例
    一个简单的邮件发送
    关于process
    关于java的static语句块
    关于struts2拦截器获取页面参数
    hexo github pages 首页不展示,出现代码怎么办
    使用Hexo搭建个人博客(三)
  • 原文地址:https://www.cnblogs.com/0-lingdu/p/11399375.html
Copyright © 2011-2022 走看看