Results 1 to 35 of 35
  1. #1
    Join Date
    Dec 2003
    Posts
    260

    Lightbulb How-To: Installing Eaccelerator

    I wan't quite sure where to post this, but the technical section seemed just as good a place as any. I've seen that people have been having problems with server load and their servers being REALLY slow at times, and I was having the same problem even after tweaking my server's configuration files.

    So I decided to put this guide/how-to together on how to install Eaccelerator, a PHP caching application. If you're having trouble with server load or memory, give this a try--I'm almost certain that you'll get a speed boost and your server will be much happier with you.
    _____________________________

    How-To: Installing Eaccelerator

    What is It?

    Eaccelerator is a PHP accelerator/encoder/caching utility that is based off of the old mmcache (which is no longer being maintained).

    What Eaccelerator does is: it caches your PHP scripts so that the database is no longer being queried everytime someone needs a script. This is particularly useful for large forums, but pretty much anyone can benefit from it. Since these scripts are cached, you'll notice a decrease in memory use and server load.

    Now, onto installing this!
    ______________________________

    Installing Eaccelerator

    1. First, you'll want to SSH into your server as the root user. you should be in the default directory now. If you're not, type in cd ~

    2. Now we'll make the eaccelerator directory:

    mkdir /ea/

    cd /ea/


    2. Now we'll grab the files, and untar them:
    Notice that it's a tar.bz2 file, so we need to decompress it twice.

    wget http://kent.dl.sourceforge.net/sourc....4-rc1.tar.bz2

    bzip2 -d eaccelerator-0.9.4-rc1.tar.bz2

    tar xvzf eaccelerator-0.9.4-rc1.tar


    3. Now that we've done that, let's install Eaccelerator:
    Note: in the following "export" command, you need to point that to where PHP is installed. For most, it's usually either "usr/" or "usr/local", but it may be something else.

    cd /eaccelerator-0.9.4-rc1/

    export PHP_PREFIX="/usr"

    $PHP_PREFIX/bin/phpize

    ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config

    make

    make install


    4. It's basically installed, now we need to edit the php.ini files to include Eaccelerator. This is usually found in the /etc/ folder, but if you can't find it, run a "locate php.ini" (without quotes) to find it.
    [i]I'm editting my file with nano, which pretty much anyone with a modern server should have. You can use pico or vi, it's your choice:

    cd ~

    nano /etc/php.ini


    Now find ;Windows Extensions (press ctrl + W). Remove the mmcache lines (if you had it installed before) above this and...

    ----------------------------------------------------------------------------
    For a PHP extension install (most will probably want this)
    ----------------------------------------------------------------------------

    extension="eaccelerator.so"
    eaccelerator.shm_size="16"
    eaccelerator.cache_dir="/tmp/eaccelerator"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"


    ----------------------------------------------------------------------------
    For a Zend extension install (only if you have Zend installed, or
    if you're going to install it
    ----------------------------------------------------------------------------

    zend_extension="/usr/lib/php4/eaccelerator.so"
    eaccelerator.shm_size="16"
    eaccelerator.cache_dir="/tmp/eaccelerator"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"


    5. Now we need to make the cache directory, where the cache files will be stored.

    cd ~

    mkdir /tmp/eaccelerator/

    chmod 0777 /tmp/eaccelerator/


    6. Yay, it's installed! Let's restart Apache now so that Eaccelerator will start working:

    service httpd restart

    7. You *should* notice some sort of speed boost or that the server load/memory use has decreased. But let's just make sure that it's installed properly.

    Open up your favorite FTP client and upload the eaccelerator.php and eaccelerator_password.php files to any directory on your website. I uploaded mine to my forum directory, but you can pretty much place them anywhere in the public_html directory.

    Once that's done, you can go to http://www.your-domain.com/path_to_s...ccelerator.php (of course, replacing that with the path to the script) to see if it's installed. If it's installed properly, you'll see a screen like this:


    Otherwise, you'll see a screen saying that it's not installed. You have to go back through the instructions, retry it and see if that works. Check to make sure that you specified the right directories and files in the instructions above!

    Now, we'll probably want to add a password to prevent some mean user from clearing the cached scripts or causing other bad stuff to happen. Navigate to the eaccelerator_password file and set an administrator name and password.

    This doesn't set the password, but it gives you a line of code to place in your php.ini file (just below the eaccelerator part). Once you do this, you need to log in to view the eaccelerator page.

    After you're done, you can delete or rename this file, but it's not required.
    ____________________________________

    Q&A

    Q: Is it normal for the eaccelerator cache to be cleared when Apache restarts?

    A: Yes, it's completely normal. When it restarts, all cache files will be removed, but as soon as those scripts are accessed, they are added to the cache.

    Q: How do I upgrade?

    A: If a new version comes out, just follow these instructions but replace the new file address URL with the new one. You can check the Eaccelerator page for available mirrors, just get the address of one and grab it with wget. Then replace the old filename used in the above instructions with the newer version's name. If possible, I'll try and keep it updated.
    _________________________________

    So that's pretty much it. I wrote this to help those of you having trouble with high server load and memory use, and hopefully this will help.

    Comments are welcome, this is my first semi-technical guide.
    Last edited by Ricjustsaid; 11-28-2005 at 12:18 AM.

  2. #2
    Join Date
    Sep 2005
    Posts
    86

    Lightbulb

    Just a warning to the latest PHP 5.1.0 users: eaccelerator 0.9.3 does NOT compile under PHP 5.1.0. Wait for the new eaccelerator build.

  3. #3
    Join Date
    Sep 2002
    Location
    Top Secret
    Posts
    11,686
    Using RC versions of software, and linking to them is a reallly bad idea, because that will cause a lot of problems!

    Great tutorial, however
    WHMCS Guru - WHMCS addons, management, support and more.
    WHMCS Notifications Extended - Add slack, hipchat, SMS, pushover to WHMCS !!
    Always looking for Linux, WHMCS, Support Desk work. PM for details

  4. #4
    Join Date
    Jan 2003
    Posts
    174
    I have installed this on a server to test it out. Thanks for the how-to.

    One question though. What value do you guys recommend for the following: eaccelerator.shm_size="16" ?? I have tried with 128 for example but I don't see much of an improvement.

    The server I'm using for this test has 1GB of ram and an amd64 3000 processor.

    Thanks for the information

  5. #5
    Join Date
    Dec 2003
    Posts
    58
    Quote Originally Posted by java_dude

    bzip2 -d eaccelerator-0.9.4-rc1.tar.bz2

    tar xvzf eaccelerator-0.9.4-rc1.tar[/i]

    Just wondering, once I do the the 2nd tar, it gives me this error:

    gzip: stdin: not in gzip format
    tar: Child returned status 1
    tar: Error exit delayed from previous errors


    any idea, what would cause this? Im running Centos 4.1

  6. #6
    Join Date
    Jun 2003
    Posts
    961
    tar xvzf eaccelerator-0.9.4-rc1.tar
    Quote Originally Posted by tubcan
    Just wondering, once I do the the 2nd tar, it gives me this error:

    gzip: stdin: not in gzip format
    tar: Child returned status 1
    tar: Error exit delayed from previous errors


    any idea, what would cause this? Im running Centos 4.1
    remove the "z" parameter
    -z, --gzip, --gunzip, --ungzip
    filter the archive through gzip
    its not a gzipped archive so only use
    Code:
    tar xvf eaccelerator-0.9.4-rc1.tar
    or use
    Code:
    tar xvjf eaccelerator-0.9.4-rc1.tar.bz2
    -j, --bzip2
    filter archive through bzip2, use to decompress .bz2 files.
    WARNING: some previous versions of tar used option -I to filter
    through bzip2. When writing scripts, use --bzip2 instead of -j
    so that both older and newer tar versions will work.

  7. #7
    Join Date
    Nov 2003
    Posts
    324
    if you already have zend optimizer installed on your server, would this create any conflicts?

  8. #8
    Join Date
    Sep 2002
    Location
    Top Secret
    Posts
    11,686
    Quote Originally Posted by damainman
    if you already have zend optimizer installed on your server, would this create any conflicts?
    I've been using it on all of mine with ZO and have no problems at all
    WHMCS Guru - WHMCS addons, management, support and more.
    WHMCS Notifications Extended - Add slack, hipchat, SMS, pushover to WHMCS !!
    Always looking for Linux, WHMCS, Support Desk work. PM for details

  9. #9
    Join Date
    May 2002
    Location
    Moscow
    Posts
    1,490
    just in addition: eaccelerator do not work with php compiled as cgi, so it is not possible use it with phpsuexec or with suphp.
    Rustelekom LLC Dedicated server since 2002, RIPE NCC member, LIR, AS51168

  10. #10
    I have succesfully installed eaccelerator on debian linux ...after the installation I created the cache directory and it works fine

    But I ran into trouble on next reboot ... the cachedir was removed from /tmp/
    Is there some way to recreate the directory on startup?

    thank you very much in advance!

  11. #11

    solved it already

    well ... after a little trying around I found a solution myself but maybe it helps someone
    I wrote the script "eaccelerator" in /etc/init.d/

    Code:
    #!/bin/bash
    mkdir /tmp/eaccelerator
    chmod 0777 /tmp/eaccelerator
    and made a symlink ("ln -s /etc/init.d/eaccelerator /etc/rc2.d/S30eacc") in the specific runlevelfolder

    checked that the script had executable bits set

    "init 6" as root in order to reboot the system

  12. #12
    Join Date
    Dec 2004
    Location
    New York, NY
    Posts
    10,574
    Quote Originally Posted by rustelekom
    just in addition: eaccelerator do not work with php compiled as cgi, so it is not possible use it with phpsuexec or with suphp.
    if you have PHP compiled using FastCGI it will work though.
    MediaLayer, LLC - www.medialayer.com Learn how we can make your website load faster, translating to better conversion rates for your business!
    The pioneers of optimized web hosting, featuring LiteSpeed Web Server & SSD Storage - Celebrating 10 Years in Business

  13. #13
    Join Date
    May 2003
    Location
    UK
    Posts
    30

    *

    servers are very happy with eAccelerator but now our aplications doesnt work. (ModernBill & DRAMS). Is possible to get working ?

    Both are Zend encoded and we use:

    Code:
    [Zend]
    zend_optimizer.optimization_level=0
    zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2.5.10
    zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2.5.10
    zend_optimizer.version=2.5.10a
    zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so
    zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20020429/eaccelerator.so"
    eaccelerator.shm_size="16"
    eaccelerator.cache_dir="/tmp/eaccelerator"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"
    Thanks.

  14. #14
    Join Date
    Jan 2006
    Posts
    45
    Eaccelerator is a good php caching engine. I would suggest people to give APC a try also. It is more regularly developed and I have found it performs on par with Eaccelerator if not better.

  15. #15
    When I entered
    export PHP_PREFIX="/usr/local"
    I got this error
    export: Command not found.
    When I entered
    /usr/local/bin/phpize
    I got this error
    Configuring for:
    PHP Api Version: 20020918
    Zend Module Api No: 20020429
    Zend Extension Api No: 20050606
    Cannot find autoconf. Please check your autoconf installation and the PHP_AUTOC
    ONF environment variable is set correctly and then rerun this script.
    Please help
    I'm using FreeBSD

  16. #16
    Join Date
    Nov 2005
    Location
    India
    Posts
    0
    You need to go to the autoconf project page and download autoconf package and install it. This will solve your problem. Autoconf produces shell scripts which automatically configure source code. I am not able to put links since this is my first post

  17. #17
    Join Date
    Jun 2003
    Posts
    961
    Quote Originally Posted by anishts
    I am not able to put links since this is my first post
    its http://www.gnu.org/software/autoconf/

  18. #18
    Anyone know what would cause this? Apache is running fine in the meantime.

    The errors are from error log on control panel.
    I can't open some pages on my forum admin panel.

    [18656] EACCELERATOR: PHP unclean shutdown on opline 637 of str_replace() at /home/trustno1/public_html/forum/sources/classes/class_display.php:319
    [18488] EACCELERATOR: PHP unclean shutdown on opline 77 of load_language() at /home/trustno1/public_html/forum/sources/ipsclass.php:1677
    [18470] EACCELERATOR: PHP unclean shutdown on opline 747 of str_replace() at /home/trustno1/public_html/forum/sources/classes/class_display.php:330
    [16917] EACCELERATOR: PHP unclean shutdown on opline 551 of str_replace() at /home/trustno1/public_html/forum/sources/classes/class_display.php:313
    [16156] EACCELERATOR: PHP unclean shutdown on opline 952 of auto_run() at /home/trustno1/public_html/forum/sources/action_public/topics.php:414
    [17934] EACCELERATOR: PHP unclean shutdown on opline 595 of display_topic() at /home/trustno1/public_html/forum/sources/lib/func_topic_linear.php:421
    [17932] EACCELERATOR: PHP unclean shutdown on opline 1473 of str_replace() at /home/trustno1/public_html/forum/sources/action_public/topics.php:572
    [16913] EACCELERATOR: PHP unclean shutdown on opline 508 of str_replace() at /home/trustno1/public_html/forum/sources/classes/class_display.php:310
    [16614] EACCELERATOR: PHP unclean shutdown on opline 82 of forums_check_access() at /home/trustno1/public_html/forum/sources/classes/class_forums.php:299
    [15983] EACCELERATOR: PHP unclean shutdown on opline 234 of auto_run() at /home/trustno1/public_html/forum/sources/acp_loaders/acp_components.php:142
    [16754] EACCELERATOR: PHP unclean shutdown on opline 234 of auto_run() at /home/trustno1/public_html/forum/sources/acp_loaders/acp_components.php:142
    [16764] EACCELERATOR: PHP unclean shutdown on opline 13 of mysql_fetch_array() at /home/trustno1/public_html/forum/ips_kernel/class_db_mysql.php:567
    [16760] EACCELERATOR: PHP unclean shutdown on opline 1473 of str_replace() at /home/trustno1/public_html/forum/sources/action_public/topics.php:572

  19. #19
    Join Date
    Nov 2005
    Location
    Palma de Mallorca, Spain
    Posts
    259
    Just wanted to point two details:

    1) if "phpize" is not found, you need to install the php-devel package... (try yum install php-devel)

    2) if "configure" throws: "error: C++ preprocessor "/lib/cpp" fails sanity check", then you need to install gcc-c++ package (try yum install gcc-c++)

    Regards,

    Juan

  20. #20
    Open up your favorite FTP client and upload the eaccelerator.php and eaccelerator_password.php files to any directory on your website. I uploaded mine to my forum directory, but you can pretty much place them anywhere in the public_html directory.
    where do i find this ?

  21. #21
    Join Date
    Nov 2005
    Location
    Seattle, WA
    Posts
    642
    the files are under the eaccelerator folder, just copy them over to an account:

    cp eaccelerator.php /home/username/public_html/
    cp eaccelerator_password.php /home/username/public_html/

  22. #22
    [22-Mar-2006 10:27:03] PHP Warning: Unknown(): Unable to load dynamic library './/usr/local/src/eaccelerator-0.9.4/modules/eaccelerator.so' -
    .//usr/local/src/eaccelerator-0.9.4/modules/eaccelerator.so: cannot open shared object file: No such file or directory in Unknown on line 0
    [22-Mar-2006 10:27:08] PHP Warning: Unknown(): Unable to load dynamic library './/usr/local/src/eaccelerator-0.9.4/modules/eaccelerator.so' -
    .//usr/local/src/eaccelerator-0.9.4/modules/eaccelerator.so: cannot open shared object file: No such file or directory in Unknown on line 0


    i setup successful but in /tmp/eaccel/ i got error_log
    Please help me
    thanks!

  23. #23
    I'm posting here because I've found this thread helpful.

    Tip: If your php.ini is located at:
    /usr/local/Zend/etc/php.ini (because you use Zend, obviously)

    You will probably need to go the "PHP extension" route, as opposed to "Zend extension" as they seem to be incompatible otherwise, at least with the versions I've tried.

    Make sure you but the eaccelerator.so module in:
    /usr/local/Zend/lib


    php -v
    PHP 4.4.2 (cli) (built: May 3 2006 01:58:15)
    Copyright (c) 1997-2006 The PHP Group
    Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
    with eAccelerator v0.9.3, Copyright (c) 2004-2004 eAccelerator, by eAccelerator
    with Zend Extension Manager v1.0.9, Copyright (c) 2003-2006, by Zend Technologies
    with Zend Optimizer v2.6.2, Copyright (c) 1998-2006, by Zend Technologies


    Note that once you do this, it will load as a PHP and Zend module:
    [PHP Modules]
    bcmath
    calendar
    ctype
    curl
    domxml
    eAccelerator
    ftp
    gd
    mcrypt
    mysql
    overload
    pcre
    posix
    session
    sockets
    standard
    tokenizer
    xml
    Zend Optimizer
    zlib

    [Zend Modules]
    Zend Extension Manager
    Zend Optimizer
    eAccelerator
    "It's hard to dance if you just lost your wallet. Whoa! Where's my wallet? But, hey this song is funky." - Mitch Hedberg

  24. #24
    Join Date
    May 2003
    Posts
    1,664
    I am attempting to get this working, but my servers are all compiled with phpsuexec enabled. With the install done I see this on the php -v, but no files are being written to the tmp file. In therory it looks as if it is working, but with the no writes does that mean my efforts are futile?

    PHP 4.4.2 (cli) (built: Apr 15 2006 00:14:01)
    Copyright (c) 1997-2006 The PHP Group
    Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
    with eAccelerator v0.9.4, Copyright (c) 2004-2005 eAccelerator, by eAccelerator
    with Zend Extension Manager v1.0.9, Copyright (c) 2003-2006, by Zend Technologies
    with Zend Optimizer v2.6.2, Copyright (c) 1998-2006, by Zend Technologies

  25. Quote Originally Posted by damainman
    if you already have zend optimizer installed on your server, would this create any conflicts?
    I think yes, I got conflicts after installing Eaccelerator with Zend Optimizer.

  26. #26
    Join Date
    May 2006
    Location
    Canada
    Posts
    307
    Ok, after much fussing around I finally managed to get this installed on my VPS. I`ve installed it straight out of the box, and using the following...

    zend_extension="eaccelerator.so"
    eaccelerator.shm_size="16"
    eaccelerator.cache_dir="/tmp/eaccelerator"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"
    Just a few clicks with one of my forums to test the module I noticed the tmp/eaccelorator folder was two pages full. This is where I`m stumped, do I clear this folder manually, does the module do it at various intervals or do I set up some kind of cron?

    Thanks.

  27. #27
    Join Date
    Dec 2005
    Location
    KY
    Posts
    28
    well i install newest stable version and follow instruction but i can find 2 those file to check is everything installed corectly


    http://bart.eaccelerator.net/source/...-0.9.5.tar.bz2



    eaccelerator.php and eaccelerator_password.php
    BHF

  28. #28
    Join Date
    Jun 2006
    Location
    New Delhi, India
    Posts
    166
    In new version, theres nothing like that

  29. #29
    There's a file in that package called control.php - upload that to your server and add the following to your php.ini to point to control.php:

    eaccelerator.allowed_admin_path = "/path/to/control.php"
    The default username and password is admin:eAccelerator

    You can edit the first few lines in control.php to set your own username and password.

    By accessing control.php from your browser you can then manually clear the cache.

    Also, take a look at the options "eaccelerator.shm_ttl" and "eaccelerator.shm_prune_period" on the following link for details on how to get eAccelerator to remove old scripts that haven't been accessed in a certain time when the cache is full: eaccelerator.net/wiki/Settings

  30. #30
    im facing the error

    regrding control.pp

    Cached scripts

    Warning: This script isn't in the allowed_admin_path setting! in /home/golponet/public_html/control.php on line 300

    Warning: uasort() [function.uasort]: The argument should be an array in /home/golponet/public_html/control.php on line 135

    Warning: Invalid argument supplied for foreach() in /home/golponet/public_html/control.php on line 139
    and
    Removed scripts

    Warning: This script isn't in the allowed_admin_path setting! in /home/golponet/public_html/control.php on line 303

    Warning: uasort() [function.uasort]: The argument should be an array in /home/golponet/public_html/control.php on line 135

    Warning: Invalid argument supplied for foreach() in /home/golponet/public_html/control.php on line 139Filename ↓
    MTime Size Reloads Hits

    info:
    document root: /home/golponet/public_html
    SERVER["DOCUMENT_ROOT"] /home/golponet/public_html
    _SERVER["PATH"] /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin

    any one can help me?

  31. #31
    Join Date
    Jan 2005
    Posts
    231
    Well, I have a strange error regarding 0.9.5. There is a file called bugreport.php. Report generated by this file is ok except
    the last line:

    /path/to/eacache doesn't exist!

    This dir is ok and have files cached under it.

    Any idea?

  32. #32
    Join Date
    Jan 2005
    Posts
    231
    Lol, I found the problem.

  33. #33
    Join Date
    Jan 2005
    Posts
    2,175
    Quote Originally Posted by supershaney
    There's a file in that package called control.php - upload that to your server and add the following to your php.ini to point to control.php:



    The default username and password is admin:eAccelerator

    You can edit the first few lines in control.php to set your own username and password.

    By accessing control.php from your browser you can then manually clear the cache.

    Also, take a look at the options "eaccelerator.shm_ttl" and "eaccelerator.shm_prune_period" on the following link for details on how to get eAccelerator to remove old scripts that haven't been accessed in a certain time when the cache is full: eaccelerator.net/wiki/Settings
    Thanks, no wonder why eaccelerator.php shows that eaccelerator is NOT installed!! 0.9.5 doesn't use that file anymore.

    Question, why does it only cache up to 173 scripts, doesn't increase after 2 days o_0

  34. #34
    Join Date
    Jan 2005
    Posts
    2,175
    Does eaccelerator automatically purge old cached scripts in /tmp/eaccelerator/ ?

  35. #35
    Im getting exactly the same warnings on control.php im
    Cached scripts:
    Warning: This script isn't in the allowed_admin_path setting! in /home/musik/public_html/panel/control.php on line 300

    Warning: uasort(): The argument should be an array in /home/musik/public_html/panel/control.php on line 135

    Warning: Invalid argument supplied for foreach() in /home/musik/public_html/panel/control.php on line 139

    Removed scripts:
    Warning: This script isn't in the allowed_admin_path setting! in /home/my-musik/public_html/panel/control.php on line 303

    Warning: uasort(): The argument should be an array in /home/my-musik/public_html/panel/control.php on line 135

    Warning: Invalid argument supplied for foreach() in /home/my-musik/public_html/panel/control.php on line 139

    using 0.9.5
    php 4.
    apache 2
    --

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •