markdown Ubuntu LAMP开发环境设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Ubuntu LAMP开发环境设置相关的知识,希望对你有一定的参考价值。

Install git:

    sudo apt-get install git

Configure Git:

    touch ~/.gitignore_global
    git config --global core.excludesfile ~/.gitignore_global
    git config --global user.name "Your Name"
    git config --global user.email "Your Email"
    
    ssh-keygen -t rsa -C "Your Email"
    cat ~/.ssh/id_rsa.pub

(Optional) Use PHP 5.4.x:

    sudo add-apt-repository ppa:ondrej/php5-oldstable
    sudo apt-get update

(Optional) Use PHP 5.5.x:

    sudo add-apt-repository ppa:ondrej/php5
    sudo apt-get update

(Optional) Use PHP 5.6.x:

    sudo add-apt-repository ppa:ondrej/php5-5.6
    sudo apt-get update

Install apache/php:

    sudo apt-get install apache2 php5 php5-cli libapache2-mod-php5 php5-dev

Ensure this worked by visiting ``http://localhost/``.  You should see **It works!**.

Edit your php.ini:

    sudo nano /etc/php5/cli/php.ini

1. Add a timezone

        date.timezone = America/New_York
    
2. Turn off short tags

        short_open_tag = Off

3. Increase `xdebug.max_nesting_level`

        xdebug.max_nesting_level = 250

Install mysql (enter through password prompts to use use defaults):
    
    sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

Install phpmyadmin (choose apache2 and enter through password prompts to use default):

    sudo apt-get install phpmyadmin

Edit phpmyadmin ``config.inc.php``:

    sudo nano /etc/phpmyadmin/config.inc.php

Add/edit the following (around page 42):

```php
// ...

/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';

$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
$cfg['Servers'][$i]['user'] = 'root';
/* Server parameters */

// ...
```

Ensure this worked by visiting ``http://localhost/phpmyadmin``.

Install useful php modules:

    sudo apt-get install php5-mcrypt php5-xdebug php5-curl php5-sqlite php5-xsl php-pear php-apc

Change php.ini directory for apache to use the same config as cli:

Edit ``/etc/apache2/mods-enabled/php5.load`` to look like the following:

    PHPIniDir "/etc/php5/cli"

    LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

Install PHPUnit:
    
    sudo pear config-set auto_discover 1
    sudo pear install pear.phpunit.de/PHPUnit

Install Composer:

    sudo apt-get install curl
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer

Install node.js/npm:

    sudo apt-get install python-software-properties python g++ make
    sudo add-apt-repository ppa:chris-lea/node.js
    sudo apt-get update
    sudo apt-get install nodejs

Install some npm modules:

    sudo npm install -g bower
    sudo npm install -g uglify-js
    sudo npm install -g uglifycss
    sudo npm install -g grunt-cli
    sudo npm install -g zombie

# Appendix

## A. Configure Apache Sites

Enable Apache mods:

    sudo a2enmod rewrite vhost_alias

Add Apache site:

    sudo nano /etc/apache2/sites-available/dev

Add the following:

```
<VirtualHost *:80>
  ServerName localhost
  DocumentRoot /home/{user}/www
</VirtualHost>

<VirtualHost *:80>
  ServerAlias *.local
  VirtualDocumentRoot /home/{user}/www/%1/web
</VirtualHost>

# For SSL
#<VirtualHost *:443>
#  ServerAlias *.local
#  VirtualDocumentRoot /home/kbond/www/%1/web
#
#  SSLEngine on
#  SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
#  SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
#</VirtualHost>
```

Enable the site:

    sudo a2ensite dev

Restart Apache:

    sudo apache2ctl restart

Ensure your sites are added to `/etc/hosts`:

    127.0.0.1    mysite.local

## B. Enable SSL

Install ``ssl-cert``:

    sudo apt-get install ssl-cert

Enable ssl and default ssl site in apache:

    sudo a2enmod ssl
    sudo a2ensite default-ssl
    sudo service apache2 restart

## C. Install Twig C Extension

Reference: http://twig.sensiolabs.org/doc/intro.html#installing-the-c-extension

Ensure `gcc` is intalled:

    sudo apt-get install gcc

Then run the following:

    git clone https://github.com/fabpot/Twig.git
    cd Twig/ext/twig/
    sudo phpize
    sudo ./configure
    sudo make
    sudo make install

Add the following to your `php.ini`:

    extension=twig.so

Restart Apache:

    sudo apache2ctl restart

## D. Enable ACL

Edit your filesystem table:

    sudo nano /etc/fstab

Add `acl` to the options column of `ext4`:

```
# <file system>  <mount point>  <type>  <options>              <dump>  <pass>
UUID=...         /              ext4    acl,errors=remount-ro  0       1
```

## E. Install icu/php-intl from source

[Download latest ICU](http://site.icu-project.org/download)

```
./configure
make
make install
```

[Download latest intl](http://pecl.php.net/package/intl)

```
phpize
./configure
make
make install
```

Add the following to your `php.ini`:

    extension=intl.so

## F. Install pdo_dblib/mssql from source

**UPDATE:** on Ubuntu 14.04 and PHP 5.6 you can simply install Sybase DB:

    apt-get install php5-sybase

---

[Download latest FreeTDS](http://www.freetds.org/) and compile:

```
./configure --prefix=/usr/local/freetds --with-tdsver=7.0 --enable-msdblib --with-gnu-ld
make
make install
```

[Download source for your version of php](https://github.com/php/php-src)

Compile `pdo_dblib`:

```
cd ext/pdo_dblib
phpize
./configure --with-pdo-dblib=/usr/local/freetds --with-php-config=/path/to/php-config
make
make install
```

Compile `mssql`:

```
cd ext/mssql
phpize
./configure --with-mssql=/usr/local/freetds --with-php-config=/path/to/php-config
make
make install
```

Add the following to your `php.ini`:

```
extension=pdo_dblib.so
extension=mssql.so
```

**Note**: ensure these are below `extension=pdo.so`

Ensure `dblib` it is available with:

    php -r "phpinfo();" | grep "PDO drivers"

**Note**: during `./configure` if you get the error: `configure: error: Cannot find php_pdo_driver.h.`, edit the following section in the `./configure` file:

From:

```bash
if test -f $abs_srcdir/include/php5/ext/pdo/php_pdo_driver.h; then
  pdo_cv_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
  pdo_cv_inc_path=$abs_srcdir/ext
elif test -f $prefix/include/php/ext/pdo/php_pdo_driver.h; then
  pdo_cv_inc_path=$prefix/include/php/ext
fi

```

To:

```bash
pdo_cv_inc_path=/path/to/php_pdo_driver.h # mine was: /usr/include/php5/ext/pdo/php_pdo_driver.h
```

## G. Install [weasyprint](http://weasyprint.org/)

Install dependencies:

    sudo apt-get install python-dev python-pip python-lxml libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0 libffi-dev libxml2-dev libxslt-dev

Install weasyprint:

    sudo pip install weasyprint

## H. Install [wkhtmltopdf](http://wkhtmltopdf.org/) dependencies

    sudo apt-get install libxrender1 libfontconfig1 libxtst6

以上是关于markdown Ubuntu LAMP开发环境设置的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu16.04搭建LAMP开发环境

Ubuntu 16.04搭建LAMP开发环境

Ubuntu 16.04搭建LAMP开发环境

markdown LAMP和PHPMyAdmin在Ubuntu 18.04

Ubuntu搭建LAMP开发环境

markdown 在Ubuntu 19.04上安装LAMP Stack