README.md 7.84 KB
Newer Older
Diego Hernandes's avatar
Diego Hernandes committed
1
# PHP Repositories for Alpine - by CODECASTS
Diego Hernandes's avatar
Diego Hernandes committed
2

Diego Hernandes's avatar
Diego Hernandes committed
3
**"Up-to-date, PHP packages for Alpine Linux."**
Diego Hernandes's avatar
Diego Hernandes committed
4

Diego Hernandes's avatar
Diego Hernandes committed
5
---
Diego Hernandes's avatar
Diego Hernandes committed
6

Diego Hernandes's avatar
Diego Hernandes committed
7
Maintained by **[@hernandev](https://github.com/hernandev)**. Based on **[Valery Kartel](https://github.com/vakartel)** scripts.
Diego Hernandes's avatar
Diego Hernandes committed
8
9

---
Diego Hernandes's avatar
Diego Hernandes committed
10

Diego Hernandes's avatar
Diego Hernandes committed
11
This project provides a simple alternative for running updated PHP on Alpine Linux.
Diego Hernandes's avatar
Diego Hernandes committed
12

Diego Hernandes's avatar
Diego Hernandes committed
13
We pack and release PHP versions as soon they are available on http://php.net. (At least, we try to.)
Diego Hernandes's avatar
Diego Hernandes committed
14

Diego Hernandes's avatar
Diego Hernandes committed
15
Additionally, many PECL extensions are also available as packages as well.
Diego Hernandes's avatar
Diego Hernandes committed
16

Diego Hernandes's avatar
Diego Hernandes committed
17
---
Diego Hernandes's avatar
Diego Hernandes committed
18

Diego Hernandes's avatar
Diego Hernandes committed
19
## Release Cycle
Diego Hernandes's avatar
Diego Hernandes committed
20

Diego Hernandes's avatar
Diego Hernandes committed
21
For short, this project will support **2 minor version of both PHP and Alpine**  at time.
Diego Hernandes's avatar
Diego Hernandes committed
22

Diego Hernandes's avatar
Diego Hernandes committed
23
## Available Repositories
Diego Hernandes's avatar
Diego Hernandes committed
24

25
26
27
28
29
30
31
| Alpine Version  | PHP Version               | Status                                | Repository URL
| -               | -                         | -                                     | -
| **`3.8`**       | **`7.3`** / `7.3.0-beta`  | supported until Alpine v3.10 release  | [https://php.codecasts.rocks/v3.8/php-7.3](https://php.codecasts.rocks/v3.8/php-7.3)
| **`3.8`**       | **`7.2`** / `7.2.9`       | supported until Alpine v3.10 release  | [https://php.codecasts.rocks/v3.8/php-7.2](https://php.codecasts.rocks/v3.8/php-7.2)
| **`3.7`**       | **`7.2`** / `7.2.9`       | supported until Alpine v3.9 release   | [https://php.codecasts.rocks/v3.7/php-7.2](https://php.codecasts.rocks/v3.7/php-7.2)
| **`3.7`**       | **`7.1`** / `7.1.21`      | supported until Alpine v3.9 release   | [https://php.codecasts.rocks/v3.7/php-7.1](https://php.codecasts.rocks/v3.7/php-7.1)

Diego Hernandes's avatar
Diego Hernandes committed
32

Diego Hernandes's avatar
Diego Hernandes committed
33
> PHP 7.0.x is now deprecated and removed from this documentation. Your scripts will not stop working since the files are still available but they will not be receiving new builds from now on.
Diego Hernandes's avatar
Diego Hernandes committed
34

Diego Hernandes's avatar
Diego Hernandes committed
35
---
Diego Hernandes's avatar
Diego Hernandes committed
36

Fabio Vedovelli's avatar
Fabio Vedovelli committed
37
> Each version is available on a separate repository, choose the one you want and follow the instructions below:
Diego Hernandes's avatar
Diego Hernandes committed
38

Diego Hernandes's avatar
Diego Hernandes committed
39
40
41
42
43
44
45
46
47
48
49
50
## Repository Conflicts

In some cases, the packages on the repositories may present conflicts with official packages.

To solve that, each page was aliases as `php-name`, without the `7` indicator.

Considering this, all installs are now encouraged to reference the virtual names when installing.

The examples on this documentation are now updated to reflect this decision.

The original names are kept, and it should not break working scripts.

Diego Hernandes's avatar
Diego Hernandes committed
51
52
53
54
55
56
57
58
59

## Base Images

If you want, you can use the base images as your starting point on this repository:

The available images are:

| Image Name           | Tag     | FROM Example                       | Description
| -                    | -       | -                                   | -
60
61
62
63
| codecasts/alpine-3.8 | php-7.3 | `FROM codecasts/alpine-3.8:php-7.3` | PHP 7.3 on Alpine v3.8
| codecasts/alpine-3.8 | php-7.2 | `FROM codecasts/alpine-3.8:php-7.2` | PHP 7.2 on Alpine v3.8
| codecasts/alpine-3.7 | php-7.2 | `FROM codecasts/alpine-3.7:php-7.2` | PHP 7.2 on Alpine v3.7
| codecasts/alpine-3.7 | php-7.1 | `FROM codecasts/alpine-3.7:php-7.1` | PHP 7.1 on Alpine v3.7
Diego Hernandes's avatar
Diego Hernandes committed
64

Diego Hernandes's avatar
Diego Hernandes committed
65
66
67
68
## Snippets

The following code snippets are intended for quick usage on either shell scripts or Dockerfile

Diego Hernandes's avatar
Diego Hernandes committed
69
70
> Notice that `main` and `community` official repositories must be enabled.

Diego Hernandes's avatar
Diego Hernandes committed
71
72
### Dockerfile

Diego Hernandes's avatar
Diego Hernandes committed
73
You may skip the ca-certificates part if you replace HTTPS by HTTP but you should not. PHP packages will eventually install ca-certificates anyway.
Diego Hernandes's avatar
Diego Hernandes committed
74
75

```dockerfile
76
77
# Versions 3.8 and 3.7 are current stable supported versions.
FROM alpine:3.8
Diego Hernandes's avatar
Diego Hernandes committed
78
79
80
81
82
83
84
85
86
87

# trust this project public key to trust the packages.
ADD https://php.codecasts.rocks/php-alpine.rsa.pub /etc/apk/keys/php-alpine.rsa.pub

## you may join the multiple run lines here to make it a single layer

# make sure you can use HTTPS
RUN apk --update add ca-certificates

# add the repository, make sure you replace the correct versions if you want.
88
RUN echo "@php https://php.codecasts.rocks/v3.8/php-7.2" >> /etc/apk/repositories
Diego Hernandes's avatar
Diego Hernandes committed
89
90
91

# install php and some extensions
# notice the @php is required to avoid getting default php packages from alpine instead.
Diego Hernandes's avatar
Diego Hernandes committed
92
93
94
RUN apk add --update php@php
RUN apk add --update php-mbstring@php
RUN apk add --update php-you-extension-name-here@php
Diego Hernandes's avatar
Diego Hernandes committed
95
```
Diego Hernandes's avatar
Diego Hernandes committed
96

Diego Hernandes's avatar
Diego Hernandes committed
97
### Bash / Shell scripting
Diego Hernandes's avatar
Diego Hernandes committed
98

Diego Hernandes's avatar
Diego Hernandes committed
99
> You may skil the ca-certificates part if you replace HTTPS by HTTP but you should not. PHP packages will eventually install ca-certificates anyway.
100

Diego Hernandes's avatar
Diego Hernandes committed
101

Diego Hernandes's avatar
Diego Hernandes committed
102
```bash
Diego Hernandes's avatar
Diego Hernandes committed
103
#!/usr/bin/env sh
104

Diego Hernandes's avatar
Diego Hernandes committed
105
106
# install curl and certificates to download the key
apk add --update curl ca-certificates
Diego Hernandes's avatar
Diego Hernandes committed
107

Diego Hernandes's avatar
Diego Hernandes committed
108
109
# download the repository public key
curl https://php.codecasts.rocks/php-alpine.rsa.pub -o /etc/apk/keys/php-alpine.rsa.pub
Diego Hernandes's avatar
Diego Hernandes committed
110

Diego Hernandes's avatar
Diego Hernandes committed
111
# add the repository for the php / alpine version corresponding
112
echo "@php https://php.codecasts.rocks/v3.8/php-7.2" >> /etc/apk/repositories
Diego Hernandes's avatar
Diego Hernandes committed
113

Diego Hernandes's avatar
Diego Hernandes committed
114
115
# install packages
# notice that @php is required so you don't end up with default outdated php packages from community repository.
Diego Hernandes's avatar
Diego Hernandes committed
116
117
118
apk add --update php@php
apk add --update php-redis@php
apk add --update php-any-other-extension@php
Diego Hernandes's avatar
Diego Hernandes committed
119

Diego Hernandes's avatar
Diego Hernandes committed
120
121
```

122
123
124

## Available Packages

Diego Hernandes's avatar
Diego Hernandes committed
125
The following packages are available for installation on both 7.2 and 7.1 repositories:
126

Diego Hernandes's avatar
Diego Hernandes committed
127
128
129
130
131
132
- **[NEW]** **Backported Packages**

`argon2` `argon2-dev` `libargon2`

Argon2 was backported from EDGE branch of `ports` to allow PHP to be compiled with Argon2 password hashing support.

Diego Hernandes's avatar
Diego Hernandes committed
133
- **Core Packages (Provide Binaries or Modules)**
Diego Hernandes's avatar
Diego Hernandes committed
134

Diego Hernandes's avatar
Diego Hernandes committed
135
`php` `php-common` `php-fpm` `php-cgi` `php-apache2`
136

Diego Hernandes's avatar
Diego Hernandes committed
137
- **Special Packages (Not needed at runtime)**
Diego Hernandes's avatar
Diego Hernandes committed
138

Diego Hernandes's avatar
Diego Hernandes committed
139
`php-doc` `php-dev`
140

Diego Hernandes's avatar
Diego Hernandes committed
141
142
- **PHP 7.2 only extensions**

Diego Hernandes's avatar
Diego Hernandes committed
143
`php-sodium`
Diego Hernandes's avatar
Diego Hernandes committed
144
145
146
147

> `libsodium` extension is now part of PHP 7.2, it got renamed to `sodium` only and it reflects the version 2 of the extension.
> The original extension, at version 1 was kept built for PHP 7.2 for legacy purposes, be sure to not install the two extensions together and hope it will work (it actually may but I don't adivise you to try). 

Diego Hernandes's avatar
Diego Hernandes committed
148
- **Core Extensions**
Diego Hernandes's avatar
Diego Hernandes committed
149

Diego Hernandes's avatar
Diego Hernandes committed
150

Diego Hernandes's avatar
Diego Hernandes committed
151
`php-bcmath` `php-bz2` `php-calendar` `php-ctype` `php-curl` `php-dba` 
Diego Hernandes's avatar
Diego Hernandes committed
152

Diego Hernandes's avatar
Diego Hernandes committed
153
`php-dom` `php-embed` `php-enchant` `php-exif` `php-ftp` `php-gd` 
Diego Hernandes's avatar
Diego Hernandes committed
154

Diego Hernandes's avatar
Diego Hernandes committed
155
`php-gettext` `php-gmp` `php-iconv` `php-imap` `php-intl` `php-json`
Diego Hernandes's avatar
Diego Hernandes committed
156

Diego Hernandes's avatar
Diego Hernandes committed
157
`php-ldap` `php-litespeed` `php-mbstring` `php-mcrypt` `php-mysqli`
Diego Hernandes's avatar
Diego Hernandes committed
158

Diego Hernandes's avatar
Diego Hernandes committed
159
`php-mysqlnd` `php-odbc` `php-opcache` `php-openssl` `php-pcntl`
Diego Hernandes's avatar
Diego Hernandes committed
160

Diego Hernandes's avatar
Diego Hernandes committed
161
`php-pdo` `php-pdo_dblib` `php-pdo_mysql` `php-pdo_pgsql` `php-pdo_sqlite`
Diego Hernandes's avatar
Diego Hernandes committed
162

Diego Hernandes's avatar
Diego Hernandes committed
163
`php-pear` `php-pgsql` `php-phar` `php-phpdbg` `php-posix` `php-pspell`
Diego Hernandes's avatar
Diego Hernandes committed
164

Diego Hernandes's avatar
Diego Hernandes committed
165
`php-session` `php-shmop` `php-snmp` `php-soap` `php-sockets` `php-sqlite3`
Diego Hernandes's avatar
Diego Hernandes committed
166

Diego Hernandes's avatar
Diego Hernandes committed
167
`php-sysvmsg` `php-sysvsem` `php-sysvshm` `php-tidy` `php-wddx` `php-xml` 
Diego Hernandes's avatar
Diego Hernandes committed
168

Diego Hernandes's avatar
Diego Hernandes committed
169
`php-xmlreader` `php-xmlrpc` `php-xsl` `php-zip` `php-zlib`
170
  
Diego Hernandes's avatar
Diego Hernandes committed
171
172
- **Additional Extensions**

Diego Hernandes's avatar
Diego Hernandes committed
173
Some additional PECL extensions are provided so you don't need to build them.
174

Diego Hernandes's avatar
Diego Hernandes committed
175
176
| Extension                | Package Name   | Current Version | Available on 7.2 | Available on 7.1 |
|--------------------------|----------------|-----------------|------------------|------------------|
177
178
179
180
181
182
183
184
185
| APCu                     | php-apcu       | 5.1.12          | Yes              | Yes              |
| Imagick                  | php-imagick    | 3.4.3           | Yes              | Yes              |
| libsodium _(legacy v1)_  | php-libsodium  | 1.0.7           | Yes              | Yes              |
| mailparse                | php-mailparse  | 3.0.2           | Yes              | Yes              |
| memcached                | php-memcached  | 3.0.4           | Yes              | Yes              |
| MongoDB                  | php-mongodb    | 1.5.2           | Yes              | Yes              |
| Redis                    | php-redis      | 4.1.1           | Yes              | Yes              |
| SSH2                     | php-ssh2       | 1.1.2           | Yes              | Yes              |
| xDebug                   | php-xdebug     | 2.6.1           | Yes              | Yes              |
Diego Hernandes's avatar
Diego Hernandes committed
186

187
188
189
190
191
Non PECL extensions included:

| Extension | Package Name  | Current Version | Available on 7.2 | Available on 7.1 |
| -         | -             | -               | -                | -                |
| secp256k1 | php-secp256k1 | 0.1.3           | Yes              | Yes              | 
192

Diego Hernandes's avatar
Diego Hernandes committed
193
## Enjoy Life